我通過詢問我到javascript問題工作的函數:編寫分割的陣列(第一自變量)成組的尺寸(第二個參數)的長度,並返回它們作爲一個多維數組
寫功能將一個數組(第一個參數)拆分成長度爲大小的組(第二個參數)並將它們作爲多維數組返回。
例如,輸入
chunk([0, 1, 2, 3, 4, 5], 2)
應該返回 '分塊陣列': [[0,1],[2,3],[4,5]]
我可以讓它適用於大多數例子,但是當有超過2個組塊時,它會切換順序,我不知道爲什麼。這裏是我寫的代碼:
function chunk(arr, size) {
var newArray = [],
i, temp = arr;
for (i = 0;i<= arr.length-size;i+=size){
newArray.push(arr.slice(i,i+size));
temp.splice(i,size);
}
newArray.push(temp);
return newArray;
}
chunk(['a', 'b', 'c', 'd'], 2);
我也在處理這個問題,現在我看到了這個代碼,它可以工作,但我仍然不明白,有人可以向我解釋這個嗎?我們有size = 2,而arr.splice(0,2)只給我們['a','b'],下一步是什麼? – Valon
你是什麼意思 - 下一步是什麼? –
@u_mulder,我們得到這個結果:[['a','b'],['c','d']],但是while循環在末尾沒有++,允許代碼執行反覆。我很困惑。我甚至不知道如何表達我的自我。 – Valon