Я анализирую следующий формат файла:
// URL //
счет / 42
// Статус //
200
// HEADERS //
Content-Type = применение / JSON * * 1014
// BODY //
{"name": "xyz"}
// URL //
счет / 43
Я хотел бы сохранить несколько значений для одного ключа в функции карты.
токовый выход
{ url: [ undefined, 'account/42', undefined, 'account/43' ],
status: [ undefined, '200' ],
headers: [ undefined, 'content-type=application/json' ],
body: [ undefined, '{ "name": "xyz" }' ] }
Ожидаемый результат
{ url: [ 'account/42', 'account/43' ],
status: [ '200' ],
headers: [ 'content-type=application/json' ],
body: [ '{ "name": "xyz" }' ] }
ниже код
var fs = require('fs');
function parseFile(){
var content;
fs.readFile("src/main/resources/FileData1.txt", function(err, data) {
if(err) throw err;
content = data.toString().split(/(?:\r\n|\r|\n)/g).map(function(line){
return line.trim();
}).filter(Boolean)
console.log(processFile(content));
});
}
function processFile(nodes) {
var map={};
var key;
nodes.forEach(function(node) {
var value;
if(node.startsWith("//")){
key = node.substring(2, node.length-2).toLowerCase();
}
else{
value = node;
}
// map[key] = value;
if(key in map){
map[key].push(value);
}else{
map[key]= [value];
}
});
return map;
}
Хорошо, я вижу, что проблема в объявлении "Value", так как я хочу сохранить несколько значений, и я не уверен, когда и как объявлять значение. Даже если я объявлю значение как глобальное, оно сохранит предыдущее значение.
Проблема: Как сохранить несколько значений в карте?