0

我正在尝试在加载时过滤 CSV 文件,并且到目前为止已获得以下信息:

const csv = require('csv-parser');
const fs = require('fs');

fs.createReadStream('Names.csv')
  .pipe(csv())
  .on('data', (row) => {
      // If Column 2 Is 6
      // If Column 3 is Y
    console.log(row);
  })
  .on('end', () => {
    console.log('CSV file successfully processed');
  });

如果到处寻找参考/起点但没有取得太大进展。

4

1 回答 1

0

您需要使用回调来获取过滤行的结果:

const csv = require('csv-parser');
const fs = require('fs');
function getFilteredData(y, callback){ 
    const result = [];                 
    fs.createReadStream('Names.csv')
      .pipe(csv())
      .on('data', (row) => {
          const headers = Object.keys(row);
          if(Number(row[headers[1]]) === 6 && row[headers[2]] === y )
              result.push(row)
       })
      .on('end', () => {
          console.log('CSV file successfully processed');
          callback(result)
       });
}

或者如果你想把它作为一个流,你需要编写一个转换流或一个双工流

于 2020-05-23T20:05:08.283 回答