javascript - 对 Node.js 中的列表中的数字求和

标签 javascript node.js

我刚刚开始学习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/

相关文章:

javascript - 将字段与 id 匹配并插入数据 - meteor

javascript - 不要成功更改输入宽度

regex - 有人能为我解释一下下面的正则表达式吗?

node.js - Electron : Module version mismatch. 预期 50,得到 48

javascript - Node.js 超出最大调用堆栈

JavaScript:从嵌套的 JSON 构建 HTML 表格

javascript - 循环遍历对象数组,找到匹配值,然后创建包含每组匹配值的新数组

javascript - 我的主干 js 路由器无法工作

Node.js/Mongodb 插入回调返回未定义

javascript - Blockly 在 Node.js 上