2016-08-16 4 views
-1

Ich habe diese Funktion, in der ich alle 0 im Array am Ende neu anordnen will und ich verwende ein temporäres Array. Alles ist in Ordnung, bis ich die Länge von testArray überprüfen, die das ursprüngliche Array als Parameter erhalten. Warum kann ich nicht herausfinden, seine Länge und wie funktioniert das erste for funktioniert, wenn seine Länge nicht definiert ist?Kann die Länge eines als Parameter empfangenen Arrays nicht erhalten

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

möchten Sie nur die 0s bis zum Ende bewegen oder haben Sie auch die restlichen Werte sortiert werden sollen? – charsi

+6

'Länge' ** Länge ** –

+0

testArray.length? es sollte testArray.length – Oxi

Antwort

2

Sie verwenden falsche Zauber in diesen Zeilen

while(tempArray.length < testArray.lenght){ 

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

sollte es sein

while(tempArray.length < testArray.length){ 

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

allererst Sie einen Tippfehler mit "Länge" haben Länge sollte Länge sein. Zweitens möchten Sie wahrscheinlich Ihren Wert zurückgeben.

Hier ist ein funktionierendes Beispiel:

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] 
}; 
Verwandte Themen