У меня есть два CSV-файла, один с шагами маршрутизации и один со списком идентификаторов.Мне нужно добавить каждый идентификатор в начале каждого шага маршрутизации.Я использую Node.js.
var routeNumFile = '/routing_numbers.csv';
var routeStepFile = '/routing_steps.csv';
const csvToJson = require('csvtojson');
const jsonToCsv = require('json2csv').parse;
const fs = require('fs');
var routeNumArray;
var routeStepArray;
try {
routeNumArray = await csvToJson().fromFile(routeNumFile);
} catch (err) {
console.log("error in reading csv file")
}
try {
routeStepArray = await csvToJson().fromFile(routeStepFile);
} catch (err) {
console.log("error in reading csv file")
}
var outputArray = new Array;
var outputPath = '/gitlab/BSI_Create_Csv_Import/finalOutput.csv';
if (routeNumArray != null && routeStepArray != null) {
Object.keys(routeNumArray).forEach(function (key1) {
Object.keys(routeStepArray).forEach(function (key2) {
var comboObj = Object.assign(routeNumArray[key1], routeStepArray[key2]);
console.log(comboObj);
outputArray.push(comboObj);
});
});
}
console.log(outputArray);
var csv = jsonToCsv(outputArray);
fs.writeFileSync(outputPath, csv);
Вывод из console.log (comboObj) - это то, что я хочу.Однако, когда я помещаю это в массив, я просто получаю самую последнюю запись в шагах маршрутизации CSV снова и снова.Если я пишу это, используя поток непосредственно, где создается comboObj, это в основном работает.Если я сделаю это, я сначала преобразую объект в CSV, и в результате я получу дубликаты заголовков в конце каждой строки.Он записывает намного чище из массива объектов JSON в CSV.
Итак, я пытаюсь собрать все объединенные объекты в массив, чтобы преобразовать их в CSV и записать вфайл.Может кто-нибудь сказать мне, что не так с моим методом?