使用JsFiddle更新:在我获取数组的平均函数时获取NaN

时间:2015-02-07 22:53:14

标签: javascript arrays

我的数组声明如下

var stocks = new Array();

我从谷歌趋势中获取数字列表并将其转换为数组。这是console.log('股票是',股票);

The stocks are  [47, 65, 81, 100, 86, 76, 57, 54, 80, 81, 92, 82, 81, 59, 48, 77, 90, 86]

这是我的平均功能。它返回NaN而不是平均值。

function avgOut(values) {

    var average = 0;
    for (var i = 0; i < values.length; i = i + 1) {
        average = average + values[i];

    }
    return (average / values.length); // returns NaN
} 

编辑:这里是jsfiddle http://jsfiddle.net/caduekL2/

2 个答案:

答案 0 :(得分:2)

Guffa是正确的,你的平均功能是正常的。你得到了NaN,因为在调用Google服务器之前,调用avgOut正在发生。

使用JSONP使整个事情变得异步,你必须密切注意何时使用变量。

console.log(avgOut(stocks))应该在你的回调函数中发生,在这种情况下看起来就像它从JSFiddle链接的第22行开始。

答案 1 :(得分:1)

试试这个:http://jsfiddle.net/jvq1916d/
只需将console.log(avgOut(stocks));放在console.log('The stocks are ', stocks);

之后