【发布时间】:2021-05-27 18:36:53
【问题描述】:
我正在使用 csv-parser npm 模块在我的节点脚本中解析一个 csv。我需要删除从解析器返回的每个对象的第一个条目和空条目。目前我有这段代码可以将解析后的 csv 数据推送到一个数组中:
const parser = require('csv-parser');
const path = require('path');
const fs = require('fs');
const csvFile = path.format({dir: __dirname, base: 'LottoData.csv'});
const parsedData = [];
fs.createReadStream(csvFile)
.pipe(parser({ separator: ';', headers: false}))
.on('data', (data) => {
//console.log(data);
parsedData.push(data);
})
.on('end', () => {
console.log(parsedData);
});
处理数据时,csv解析器将返回一个具有此结构的对象:
{
'0': '23/03/1940',
'1': '12',
'2': '10',
'3': '12',
'4': '19',
'5': '23',
'6': '28',
'7': '29',
'8': '31',
'9': '39',
'10': '44',
'11': '50',
'12': '51',
'13': '53',
'14': '54',
'15': '56',
'16': '62',
'17': '64',
'18': '65',
'19': '68',
'20': '71',
'21': '80',
'22': '28',
'23': ''
},
如何从每个返回的对象中删除日期和空项,并将每个单个值直接传递到数组中,而不是推送整个对象?
【问题讨论】:
-
结帐
Object.entries() -
Object.values(parsedData).filter(x => x && !Number.isNaN(Number(x)))
标签: javascript node.js csv