用JsFiddle更新:当我获取数组的平均函数时,打开NaN

Updated With JsFiddle: Getting NaN on when I take the average function of an array

本文关键字:函数 NaN 打开 数组 更新 JsFiddle 获取      更新时间:2023-09-26

我的数组是这样声明的

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
} 

编辑:这是jsfiddlehttp://jsfiddle.net/caduekL2/

Guffa是正确的,您的平均函数工作正常。你得到NaN是因为对avgOut的调用发生在对谷歌服务器的调用返回之前。

使用JSONP会使整个过程异步,在使用变量时必须密切注意。

console.log(avgOut(stocks))应该出现在回调函数中,在本例中,它看起来像是从JSFiddle链接的第22行开始的。

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