我正在尝试编辑由 fast-csv 在 Node.JS 中构建的数组中的单个元素。
当包含单个数组索引时,Fast-csv 正在编辑所有列,而当使用 2D 数组索引时,Fast-csv 不会编辑任何数组索引。
问题是,是否可以在 JavaScript 中编辑 CSV 中的单个元素?
输入(input.csv):
hello,1,'1',forty-two,
yellow,brown,red,orange
当前输出:
[ 'hello', '1', 696, 'forty-two', '' ]
[ 'yellow', 'brown', 696, 'orange' ]
目标输出:
[ 'hello', 'julian', 696, 'forty-two', '' ]
[ 'yellow', 'brown', 696, 'orange' ]
逻辑:
var fs = require('fs');
var csv = require('fast-csv');
fs.createReadStream('./IOinput/input.csv')
.pipe(csv())
.on('data', function(data){
//console.log(data);
data[0][1] = 'julian';
data[2] = 696;
console.log(data);
})
.on('end', function(data){
console.log('Read finished');
})
依赖关系:
npm install fast-csv
最佳答案
根据文档,读入记录或行时会触发 data
事件。所以我要做的是创建一个数组并将每个记录推送到数组中,然后在以下位置进行更改结束。另一种方法是记录正在读入的行并相应地进行分支。我个人认为第一种选择更容易。它的外观如下:
var fs = require('fs');
var csv = require('fast-csv');
var dataArr = [];
fs.createReadStream('./IOinput/input.csv')
.pipe(csv())
.on('data', function(data){
dataArr.push(data); // Add a row
})
.on('end', function(){
dataArr[0][1] = 'julian';
dataArr[0][2] = 696;
dataArr[1][2] = 696;
console.log(dataArr);
console.log('Read finished');
})
关于javascript - 编辑 CSV 数组中的项目 - fast-csv node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37152124/