从对象中删除不需要的项目



我正在使用csv解析器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': ''
},

如何从每个返回的对象中删除日期和空项,并将每个值直接传递到数组中,而不是推送整个对象?

将对象的值列表转换为一个数组,然后过滤掉任何不符合您要求的内容:

const filtered = Object.values(parsedData).filter(v => isValidData(v)});

根据您对数据的了解,您可以在哪里自己实现isValidData函数。

(看看你显示的内容,似乎是"v应该是数字",所以如果是这样的话,对你来说实现起来应该很简单(

相关内容

最新更新