我想循环这个对象,并为每个人加起来的值。为什么这会返回NaN
?为什么在JavaScript中添加这些数字等于NaN?
var result = {
"alex": {
"1": 9.333333333333334,
"2": 7.666666666666666,
"3": 8.666666666666668,
"4": 8.666666666666668,
"5": 9.666666666666668,
"6": 9,
"7": 10,
"8": 10,
"9": 9.333333333333334,
"10": 8.333333333333334,
"11": 10,
"12": 9.333333333333334
},
"frank": {
"1": 9.666666666666668,
"2": 10,
"3": 9.333333333333334,
"4": 9.333333333333334,
"5": 9.333333333333334,
"6": 9.333333333333334,
"7": 8.666666666666666,
"8": 9,
"9": 9.333333333333334,
"10": 8.666666666666668,
"11": 7.666666666666666,
"12": 8.666666666666668
}
}
var res1, res2;
for (var key in result.alex) {
res1 += parseInt(result.alex[key]);
}
for (var key in result.frank) {
res2 += parseInt(result.frank[key]);
}
console.log("Res1: " + res1);
console.log("Res2: " + res2);
如果我删除+
然后我得到一个有效的数字后面,虽然,这只是一个单一的数字明显。
这里有什么问题?
想一想,你的代码中第一个'+ ='之前'res1'的值是多少? – Teemu
你没有启动变量导致'undefined + =' – tallberg
'var res1 = 0;' – Liam