我有以下代碼:爲什麼給一個數組分配一個數字使數組對象成爲一個南?
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。
這是爲什麼?
我有以下代碼:爲什麼給一個數組分配一個數字使數組對象成爲一個南?
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。
這是爲什麼?
您正在遞增arr,arr + 1 = NaN,因爲數組是NaN;您應該在for循環中執行i ++ ...
您正在使用arr++
而不是i++
作爲for
循環中的第三個子句。
從Array
到Number
的類型強制導致您的NaN
。
變化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;
}