我试图将数组中的值相加。在这种情况下,输出必须为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);
答案 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
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;
答案 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);