如何在javascript中读取本地.csv文件以填充字符串数组?

如何在javascript中读取本地.csv文件以填充字符串数组?,javascript,csv,fs,read.csv,Javascript,Csv,Fs,Read.csv,我有一个CSV文件,每行有100个名称。我想创建一个包含每个名称的数组。当前,我的CSV文件如下所示: Names Bob Joe Tim Allan 我想按如下方式填充数组: const csv = require('csv-parser'); const fs = require('fs'); const names= []; fs.createReadStream('./Names.csv') .pipe(csv()) .on('data', (data) =>

我有一个CSV文件,每行有100个名称。我想创建一个包含每个名称的数组。当前,我的CSV文件如下所示:

Names
Bob
Joe
Tim
Allan 
我想按如下方式填充数组:

const csv = require('csv-parser');
const fs = require('fs');    
const names= [];
fs.createReadStream('./Names.csv')
  .pipe(csv())
  .on('data', (data) => names.push(data.Names))
  .on('error', (error) => loggingService.getDefaultLogger().error(error))
  .on('end', () => loggingService.getDefaultLogger().info("Array of Names:" + names));
使用我创建的日志服务,我可以看到CSV中的所有名称。当我执行console.log(名称)时,我得到一个空数组。有人知道这是为什么吗?更具体地说,是否有更好的方法读取CSV文件,以便我可以用该文件的内容填充字符串数组,每行1个数组条目作为字符串?

可能有效,但不确定

编辑:是的,工作起来很有魅力

const fs=require('fs');
让名称=[];
fs.readFile('./names.csv',utf8',(err,dat)=>{
如果(错误)
console.error(“打开文件时出错”);
名称=字符串(dat).split('\n');
});

我想知道您的console.log()语句在哪里?如果在显示代码之后-是,则名称将为空,因为读取是异步的,而且您到达控制台的速度比从文件中读取快。我不熟悉CSV库,但在下面的代码段中,
设备
来自哪里
(data)=>devices.push(data.Names)
@bensiu它在代码片段之后。如果我想遍历名称数组并对其进行处理,我将如何克服异步读取?理想情况下,我希望填充数组,然后在数组中执行forEach元素,创建一个新对象。在此之前,我不确定名称数组是否已满。@Hassan这是一个输入错误。它应该是:names.push(data.names)。