如何遍历数组数组并组合值

时间:2015-05-27 14:40:02

标签: javascript arrays json angularjs linq.js

我需要遍历一个数组数组并计算每个数组的总和。 Json是一个带有x,y坐标数组的kendo-ui图表系列。我需要返回x,y值的总和。 linq.js或javascript将工作。谢谢 JSON

var =series = [{
"style":"smooth",
"color":"blue",
"data":[
    [600,30000],
    [800,60000],
    [1100,100000]
],
"name":"Subject Property",
"removeByNames":[
    ["Product1"],
    ["Product2"],
    ["Product3"]
],
 "$$hashKey":"object:30"
}]

因此,对于这个例子,我需要最终得到这个

var newSeries = [{
"style":"smooth",
"color":"blue",
"data":[
    [30600],
    [60800],
    [101100]
],
"name":"Subject Property",
"removeByNames":[
    ["Product1"],
    ["Product2"],
    ["Product3"]
],
"$$hashKey":"object:30"
}]

4 个答案:

答案 0 :(得分:3)

for(var i=0;i<series[0].data.length;i++){
   var val = series[0].data[i];
   newSeries.data[i] = val[0] + val[1];
}

答案 1 :(得分:1)

您可以使用循环并使用reduce

var series = [{
            ...
}]

for (var i = 0; i < series.length; i++) {
    for (var j = 0; j < series[i].data.length; j++) {
        series[i].data[j] = series[i].data[j].reduce(function(p,c) {
            return p + c;
        });
    }
}

演示:http://jsfiddle.net/kv854c61/1/

答案 2 :(得分:1)

你只需要在数据属性中循环这样的值......

for( var i - 0; i < series.length-1; i++){
  for( var j - 0; j < series[i].data.length-1; i++){
    var result = series[i].data[j][0] + series[i].data[j][1];
    series[i].data[j] = result;
  }
}

现在添加新数据阵列是有意义的,以免覆盖

series[i].new_data[j] = result;

答案 3 :(得分:1)

在这种情况下,

os.path.expanduser非常有用:

os.path.expanduser("~")