为什么为数组赋一个数字使数组对象成为一个南?

时间:2013-07-30 23:24:09

标签: javascript

我有以下代码:

function bytesToMb(arr)
{
    for(var i=0;i<arr.length;arr++)
    {
        var mbs= arr[i]/(1000*1000);

        arr[i]=mbs;
    }

    return arr;
}
arr[i]=mbs执行后

arr(数组对象本身)的值变为NAN。
为什么呢????

3 个答案:

答案 0 :(得分:3)

你正在递增arr,arr + 1 = NaN,因为数组是NaN;你应该在for循环中做i ++而不是......

答案 1 :(得分:1)

您使用arr++代替i++作为for循环中的第三个子句。

ArrayNumber的类型强制导致您的NaN

答案 2 :(得分:1)

arr++更改为i++

function bytesToMb(arr) {
    for (var i = 0; i < arr.length; i++) {
        var mbs = arr[i] / (1024 * 1024); // you should use 1024*1024 here to make it more precise if you need to.
        arr[i] = mbs;
    }
    return arr;
}