我可以使用Javascript数组对象作为函数中的参数吗?怎么样?

时间:2011-09-27 01:21:26

标签: javascript arrays

所以我正在尝试创建一个接收数组的函数(我猜它更像是一个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

我认为这与我没有定义要传递给函数的对象类型这一事实有关,但我的研究告诉我无所谓。

帮助? :(

感谢。

1 个答案:

答案 0 :(得分:5)

使用i < returned_json.nike_runs.length,而不是i <= returned_json.nike_runs.length

修改:当您处于此状态时,最好定义exp的起始值。