2017-11-17 2 views
-1

このコードの仕組みを解読するための助けが必要ですか?Javascript chunky monkeyアルゴリズムコードが壊れていますか?

function chunkArrayInGroups(arr, size) { 
     var newArr = []; 
     while (arr.length) { 
     newArr.push(arr.splice(0,size)); 
     } 
     return newArr; 
    } 
chunkArrayInGroups(["a","b","c","d"],2); 

(arr.length)が停止している間、この全体コードが何をしているかはわかりません。これを打ち破ってください。

+0

アレイが空のときに停止します。 –

答えて

0

while (arr.length)は、配列が空になるまで実行されます。空の場合、arr.length0に等しく、falseと扱われます。

0

アレイカウントがnewArrに押し込み(また、ルート・アレイからの特定のアイテムを削除する)全てが完了したとき、

1

Array.spliceが元の配列を変更し、それを返す「利用可能」です。 whileループ中に呼び出されると、元の配列を短くして、何度か繰り返した後にarr.lengthが0になり、falseと評価されます。

1
arr.splice(0,size) 

Array.splicesizeまでの最大インデックス0から要素を削除し、新しい配列にして返します。

newArr.push(arr.splice(0,size)); 

戻された配列は、newArrにプッシュされます。

while (arr.length) 

Array.splicearrは最終的に空になるであろうと、ループが終了するように、また、元の配列を変異させるであろう。

+0

私はそれを得た私はちょうどスライスとスプライスと混乱してしまった –

関連する問題