如何在javascript中汇总数据数组

时间:2017-11-16 16:11:28

标签: javascript arrays angularjs json object

我有来自json的数据这个数据json

var someObject = {
 "exam": 
 [
   {
     "re": [[{"result": "3"}],[{"result": "1"}],[{"result": "2"}]]
   },
   {
     "re": [[{"result": "4"}],[{"result": "4"}],[{"result": "4"}]]
   }
   ,
   {
     "re": [[{"result": "2"}],[{"result": "1"}],[{"result": "3"}]]
   }
 ]
};

问题是如何对结果求和?

我尝试过这样的代码

for (var i = 0; i<someObject.exam.length; i++){
    for (var y = 0; y < someObject.exam[i].re.length; y++){

         $scope.RESS = parseInt(someObject.exam[i].re[y][0].result) +
                       parseInt(someObject.exam[i].re[y][0].result) 
  }
}

为什么结果不像

 3 + 4 + 2; // 9
 1 + 4 + 1; // 6
 2 + 4 + 3; // 9

来自plunk xamplle

的这个例子

我花了两天时间做这样的事,现在我累了帮我试试

1 个答案:

答案 0 :(得分:2)

这是你应该如何计算的:

someObject.exam[0].re.forEach(function(o, i) {
  results.push(parseInt(someObject.exam[0].re[i][0].result) + parseInt(someObject.exam[1].re[i][0].result) + parseInt(someObject.exam[2].re[i][0].result));
});

<强>演示:

var someObject = {
  "exam": [{
      "re": [
        [{
          "result": "3"
        }],
        [{
          "result": "1"
        }],
        [{
          "result": "2"
        }]
      ]
    },
    {
      "re": [
        [{
          "result": "4"
        }],
        [{
          "result": "4"
        }],
        [{
          "result": "4"
        }]
      ]
    },
    {
      "re": [
        [{
          "result": "2"
        }],
        [{
          "result": "1"
        }],
        [{
          "result": "3"
        }]
      ]
    }
  ]
};

var results = [];

someObject.exam[0].re.forEach(function(o, i) {
  results.push(parseInt(someObject.exam[0].re[i][0].result) + parseInt(someObject.exam[1].re[i][0].result) + parseInt(someObject.exam[2].re[i][0].result));
});
console.log(results);