0

我有以下代码:

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。
这是为什么????

4

3 回答 3

3

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

于 2013-07-30T23:25:58.767 回答
1

您在循环中使用arr++而不是i++作为第三个子句。for

类型强制 from ArraytoNumber导致你的NaN.

于 2013-07-30T23:26:00.743 回答
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;
}
于 2013-07-30T23:29:55.427 回答