所以我正在尝试创建一个接收数组的函数(我猜它更像是一个JSON对象,或者我们被告知)对象并返回一个基于该数组的值,但是我一直收到错误,所以我很确定我做错了。
我是JavaScript的新手,所以对我很轻松。另外,我发现this thread与我提出的问题类似,但我不太明白这个问题(因此也是答案)。
以下是我们给出的对象示例:
var returned_json = {
"nike_runs": [
{
"start_time": "2011-03-11T19:14:44Z",
"calories": 12.0,
"distance_miles": "0.10",
"total_seconds": 288.0,
"average_pace":"50.47"
},
{
"start_time": "2011-03-11T19:41:25Z",
"calories": 7.0,
"distance_miles": "0.06",
"total_seconds": 559.0,
"average_pace": "165.19"
},
{
"start_time": "2011-03-11T20:27:45Z",
"calories": 197.0,
"distance_miles": "1.63",
"total_seconds": 8434.0,
"average_pace": "86.22"
},
...
]
}
这是我的代码:
function getExp (returned_json) {
var exp;
for (var i = 0; i <= returned_json.nike_runs.length; i++) {
exp += returned_json.nike_runs[i].calories;
}
return exp;
}
它返回错误:
TypeError: returned_json.nike_runs[i] is undefined
我认为这与我没有定义要传递给函数的对象类型这一事实有关,但我的研究告诉我无所谓。
帮助? :(
感谢。
答案 0 :(得分:5)
使用i < returned_json.nike_runs.length
,而不是i <= returned_json.nike_runs.length
。
修改:当您处于此状态时,最好定义exp
的起始值。