2016-08-16 14 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' ** length ** –

+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] 
}; 
関連する問題