我刚刚开始学习node.js。 我正在尝试创建一个将从文件中获取列表的脚本。列表是这样构建的
Bob:110
Mike:120
Bob:334
Dan:240
并且会给出这个输出
name value
它应该对与相同名称关联的数字进行求和。
所以在我的例子中它会打印
Bob 444
Mike 120
Dan 240
我使用了在此站点中找到的帮助来创建一些基本脚本
fs = require('fs');
var array = fs.readFileSync('C:\\data.txt').toString().split("\n");
var items = {}, base, key;
for (var i = 0; i < array.length; i++) {
base = array[i];
key = base[0];
if (!items[key]) {
items[key] = 0;
}
items[key] += base[1];
}
var outputArr = [], temp;
for (key in items) {
temp = [key, items[key]]
outputArr.push(temp);
}
console.log(outputArr);
请注意,我从文本文件中获取列表,但它当前包含我在此问题中发布的内容。 我得到的输出非常乱码,我不知道为什么。 这是我的输出:
[ [ 'B', '0oo' ],
[ 'M', '0i' ],
[ 'D', '0a' ],
[ 'undefined', NaN ] ]
任何人都可以帮助我理解为什么它不能正常工作并告诉我如何修复它吗?
顺便说一句,我不确定这是否是在 Node.js 中完成此类任务的正确思路。我很高兴收到反馈!
非常感谢!
最佳答案
那么,您可以使用函数来满足您的需求:
function PrintAllValuesInList(name,list){
var values = [];
for (var i = 0 ; i < list.length ; i++){
if (list[i].name == name)
values.push(list[i].value);
}
console.log("Name ",name, " Values ", values.join());
}
对此的调用将是:
var arr = [{ name: 'x', value: 'a'},
{ name: 'y', value: 'b'},
{ name: 'x', value: 'c'},
{ name: 'z', value: 'd'}];
PrintAllValuesInList('x',arr);
将输出:
Name x Values a,c
这是骗子:Plunker
如果我能帮忙,谢谢。
关于javascript - 对 Node.js 中的列表中的数字求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29496974/