我正在尝试对csv数据进行操作。 [这是csv文件] [1]
[1]:http://pastebin.com/MzLmQtye。我必须得到MxT和MnT的减法结果。
var fs = require('fs'),
fileName = "weather.csv",
bufferString;
var arr = new Array();
fs.readFile(fileName, "utf8", function(err, data) {
if(err){
console.log(err);
return;
}
bufferString = data.toString();
arr = bufferString.split('\n');
//arr = arr.split(',');
console.log(arr[1][1]);
});
从上面的代码中,我得到了逗号以及数组数据。 split(,)
也会出现TypeError: arr.split is not a function
错误。这该怎么做。
我认为对我来说最好的想法是创建这样的对象:
1:{
max:""
min:""
}
2:{
max:""
min:""
}
这样可以轻松进行减法运算。这该怎么做?我很困惑。如果我不清楚,请提及。
答案 0 :(得分:0)
迭代每一行并用逗号分隔。因此,将所有MxT和MnT值记录到控制台:
fs.readFile(fileName, "utf8", function(err, data) {
if(err){
console.log(err);
return;
}
bufferString = data.toString();
arr = bufferString.split('\n');
var line;
for(var i=0; i < arr.length; i++){
line = arr[i].split(',');
console.log(line[1]); // MxT
console.log(line[2]); // MnT
}
});
答案 1 :(得分:0)
您可以使用fast-csv而不是编写自己的解析器。
var csv = require('fast-csv');
var items = [];
csv.fromPath('weather.csv', {
headers: true
})
.on("data", data => {
items.push(data);
});
然后,您将获得items数组中所需的所有数据,因此您可以像这样进行减法。
items[0].MxT - items[0].MnT;