JSON对多个对象求和,其中值包含一个字符串

JSON summing multiple objects where values contain a string

本文关键字:包含一 字符串 求和 对象 JSON      更新时间:2023-09-26

我正在使用基于d3.js的可视化工具来实时绘制数据。我把每个级数分别画出来,我也想把它们的和画出来。

如何遍历包含解析器*的每个对象,添加y值使parserSum = 50 ?

data = [
{
    "y": 20,
    "label": "parser1",
    "time": 1404999005
},
{
    "y": 30,
    "label": "parser2",
    "time": 1404999005
},
{
    "y": 15,
    "label": "reader1",
    "time": 1404999005
}]

编辑使用@juvian的答案,这是我的最终结果:

http://jsfiddle.net/yeehawjared/u9Ppd/1/

var procs = ["parser", "reader", "writer"];
for (var i = 0; i < procs.length; i++) {
    var sum = 0;
    for (var x = 0; x < data.length; x++) {
        var obj = data[x];
        if (obj.label.indexOf(procs[i]) != -1) {
            sum += obj.y;
        }
    }
    console.log(procs[i], sum)
}

您可以尝试检查标签是否包含indexOf解析器,然后对

进行求和
var sum=0;
for(var i=0;i<data.length;i++){
    var obj=data[i];
    if(obj.label.indexOf("parser") != -1){
        sum+=obj.y;
    }
}
console.log(sum)

您也可以在数组上使用.reduce方法。它看起来像这样:

var sum = data.reduce(function(lastValue, currentElement){
  return currentElement.label.indexOf('parser') !== -1 ?
    lastValue + currentElement.y : 0;
}, 0);