javascript - 编辑 CSV 数组中的项目 - fast-csv node.js

标签 javascript node.js csv

我正在尝试编辑由 fast-csvNode.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/

相关文章:

javascript - 如何使用 React.js 调用从 Grid 读取的 kendo ui 数据源

javascript - EaselJS - 舞台鼠标悬停

c# - 无法使用 oledb 从 csv 读取所有列

python - 为什么我的 for 循环覆盖而不是追加?

javascript - object.create 不使用我的新值

javascript - 获取 DOM 中属性名称以 some-string 开头的所有 HTML 元素

node.js - 使用 node.js 从谷歌云存储中删除多个对象(文件和文件夹)的最佳做法是什么

node.js - sails.js Assets 版本控制

mysql - 在 MySQL 数据库中存储一系列 0 和 1

vb.net - 通过 foreach 语句更改数组的值 VB.net