我正在尝试编辑由 Node.JS 中的 fast-csv 构建的阵列中的单个元素。
当包含单个数组索引时,Fast-csv正在编辑所有列,而在使用2D数组索引时,没有数组索引。
问题是,是否可以在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
答案 0 :(得分:2)
根据文档,当读入记录或行时会触发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');
})