如何总结特定的多数据类型JavaScript

时间:2018-04-12 08:37:48

标签: javascript arrays

我试图将数组中的值相加。在这种情况下,输出必须为2868,但我的alert仍为0

var data = [{
      name: 'try1',
      y: 1756,
      fontWeight: 'bold',
    },{
      name: 'try2',
      y: 756,
      fontWeight: 'bold',
    },{
      name: 'try3',
      y: 356,
      fontWeight: 'bold',
    }]

var dataSum = 0;
for (var i=0;i < data.length;i++) {
    dataSum += data.y[i]
}

alert(dataSum);

4 个答案:

答案 0 :(得分:1)

它应该是data[i].y而不是data.y[i],因为data是您的对象数组,循环遍历data将为您提供data[i]中的每个对象从y对象访问属性data[i]

var data = [{
      name: 'try1',
      y: 1756,
      fontWeight: 'bold',
    },{
      name: 'try2',
      y: 756,
      fontWeight: 'bold',
    },{
      name: 'try3',
      y: 356,
      fontWeight: 'bold',
    }]

var dataSum = 0;
for (var i=0;i < data.length;i++) {
    dataSum += data[i].y
}

alert(dataSum);

答案 1 :(得分:1)

dataSum += data.y[i]

应该是

dataSum += data[i].y

您正在迭代data,而不是data.y

答案 2 :(得分:1)

您必须从适当的索引(位置)求和属性y的数量。

所以将data.y[i]更改为data[i].y

&#13;
&#13;
var data = [{
      name: 'try1',
      y: 1756,
      fontWeight: 'bold',
    },{
      name: 'try2',
      y: 756,
      fontWeight: 'bold',
    },{
      name: 'try3',
      y: 356,
      fontWeight: 'bold',
    }]

var dataSum = 0;
for (var i=0;i < data.length;i++) {
    dataSum += data[i].y
}

alert(dataSum);
&#13;
&#13;
&#13;

答案 3 :(得分:0)

[i]中的data.y[i]放置不正确。 这应该是data[i].y

您的对象数组为data,因此您必须将[i]放入data而不是y

var data = [{
  name: 'try1',
  y: 1756,
  fontWeight: 'bold',
},{
  name: 'try2',
  y: 756,
  fontWeight: 'bold',
},{
  name: 'try3',
  y: 356,
  fontWeight: 'bold',
}];

var dataSum = 0;
for (var i=0;i < data.length;i++) {
    dataSum += data[i].y
}

alert(dataSum);