2016-05-11 11 views
0

fast-csvNode.JSで構築された配列内の1つの要素を編集しようとしています。CSVアレイの項目を編集する - fast-csv node.js

Fast-csvは、単一の配列インデックスが含まれている場合はすべての列を編集し、2D配列インデックスを使用する場合は配列インデックスを作成しません。

質問は、JavaScriptでCSVから1つの要素を編集することは可能ですか?

入力(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] =あなたが'データをしようとしていないなぜ働く696' [1] =「julian''代わりに 'データの[0] [1]':ここでは見ることができる方法です – Deryck

答えて

2

レコードまたは行が読み込まれたときdataイベントが発生されているマニュアルによるとは、だから私はどうなるのか、その後にする配列を作成し、アレイ上の各レコードをプッシュしています最後に変更されます。これを行うもう1つの方法は、どの行が読み込まれているかのカウンタを保持し、それに応じて分岐することです。私は個人的に最初の選択肢が簡単だと思います。

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'); 
    }) 
関連する問題