我的数组声明如下
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 :(得分: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);