Я пытаюсь вернуть значение строки в соответствующей строке.
Я начинаю с CSV, у которого нет подробностей заголовка. После загрузки CSV в память, я думаю, что мне нужно сначала добавить заголовки, а затем преобразовать данные в JSON, а затем перебрать данные, чтобы найти правильный объект в массиве.
Я использовал highland для создания потока чтения и вывода на объекты. Однако символы разрыва строки \r
и \r\n
не анализируются и вводятся в строки значений.
Этот подход, похоже, также не анализирует весь файл, он выводит 3 строки.
highland(fs.createReadStream('example.csv', 'utf8'))
.map(line => line.split(','))
.map(parts => ({
a: parts[0],
b: parts[1],
c: parts[2]
}))
.each(x => console.log(x))
Было бы неплохо структурировать CSV как JSON, а затем использовать метод .filter()
для сопоставления записи.
Фактический вывод 1000+ файла строки
{ a: '', b: 'CD53110' }
{ a: '\nRD40115', b: 'CD40315' }
{ a: '', b: '63\r\nRE15468' }
{ a: '96798', b: '5\r\nRR60899' }
Пример входного фрагмента
,CD510,13
,T9069,65
RCM22,TC633,101
RC023,87693,16
M2024,T7636,109
Примечание: первые несколько строк содержат только столбцы 'b' и 'c'.