2016-08-16 47 views
-1

我有這個功能,我想重新排列數組中最後找到的所有0,我正在使用一個臨時數組。一切都很好,直到我檢查了testArray這是作爲參數收到的原始數組的長度。爲什麼我找不到他的長度以及第一個for如果他的長度未定義如何工作?無法獲得作爲參數收到的數組的長度

window.onload = function() { 
 

 
var testArray =[5,3,0,55,0,9,0,8]; 
 
function moveArray(testArray){ 
 
    var tempArray= []; 
 
    console.log(tempArray.length + " vs " + testArray.lenght); 
 
    for(var i = 0 ;i < testArray.length; i++) { 
 
    if(testArray[i] != 0){ 
 
     tempArray.push(testArray[i]); 
 
    // console.log("pushed " + testArray[i]); 
 
    } 
 
    } 
 
// console.log(tempArray.length + " vs " + testArray.lenght); 
 
    while(tempArray.length < testArray.lenght){ 
 
     tempArray.push('0'); 
 
    // console.log('push 0'); 
 
    } 
 
    testArray=tempArray; 
 
    for(var i = 0 ;i < testArray.length; i++){ 
 
    // console.log(testArray[i]); 
 
    } 
 
}; 
 
    
 
    moveArray(testArray); 
 
    };

+0

你只是想移動的0到最後還是你也想的其餘值排序? – charsi

+6

'lenght' **長度** –

+0

testArray.lenght?它應該是testArray.length – Oxi

回答

2

你正在使用錯誤拼寫在這些線路

while(tempArray.length < testArray.lenght){ 

console.log(tempArray.length + " vs " + testArray.lenght); 

應該

while(tempArray.length < testArray.length){ 

console.log(tempArray.length + " vs " + testArray.length); 
0

,首先你有一個錯字與你的 「長度」 ,長度應該是長度。其次,你可能想要回報你的價值。

這裏是一個工作示例:

window.onload = function() { 

var testArray =[5,3,0,55,0,9,0,8]; 

function moveArray(testArray){ 
    var tempArray= []; 
    for(var i = 0 ;i < testArray.length; i++) { 
     if(testArray[i] != 0){ 
      tempArray.push(testArray[i]); 
     } 
    } 

    while(tempArray.length < testArray.length){ 
     tempArray.push(0); 
    } 
    return tempArray; 
}; 

console.log(testArray); // output: [5, 3, 0, 55, 0, 9, 0, 8] 
testArray = moveArray(testArray); 
console.log(testArray); // output: [5, 3, 55, 9, 8, 0, 0, 0] 
}; 
相關問題