2015-02-07 48 views
0

我阵列的平均计算功能上声明如下更新了的jsfiddle:获取NaN当我需要一个数组

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/

+0

股票数组是如何与给定的代码相关的 – 2015-02-07 22:55:44

+0

当我尝试它时,它不会返回NaN:http://jsfiddle.net/Guffa/1om4svp2/ – Guffa 2015-02-07 22:56:20

+0

您是否检查过“值”是否确实包含正确的值?如果它是空的,values.length是'0',你会得到一个除零的结果,这导致NaN。也许你错误地将'stocks'传递给函数。 – GolezTrol 2015-02-07 22:56:49

回答

2

Guffa是正确的吧,一般的功能正常工作。您收到NaN是因为在调用Google服务器返回之前,发生了对avgOut的调用。

使用JSONP使整个事情变得异步,并且当你使用变量时你必须密切关注。

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

+0

是的,就像我在我的答案伤心.. – 2015-02-07 23:12:17

+0

是啊,我打字我的。 – mattandersen 2015-02-07 23:15:37

相关问题