所以這個函式應該把陣列分成第二個引數大小的塊,例如 [1, 2, 3, 4] 和第二個引數 2 將回傳 [[1, 2], [3, 4]],如果數字是 3 它將回傳 [[1, 2, 3], [4]] 等等。我的函式似乎以類似的方式表現,但它只回傳第一個塊,隨后的塊只是空陣列。每次迭代后,我將索引增加第二個引數,所以我不確定它為什么不起作用。有人可以解釋一下這里到底發生了什么以及邏輯中的錯誤在哪里嗎?
let arr = [1, 2, 3, 4, 5, 6]
function test(arr, num) {
let idx = 0;
let newArr = []
while (idx < arr.length) {
newArr.push(arr.slice(idx, num))
idx = idx num
}
return newArr
}
console.log(test(arr, 2))
uj5u.com熱心網友回復:
您需要一個索引作為第二個引數Array#slice,而不是切片的長度。
例如,如果你取第二個陣列,index = 2第二個引數必須是4,切片結束的索引。
chunks
values 1 2 3 4 5 6
indices 0 1 2 3 4 5
slice 0 2 1 2
2 4 3 4
4 6 5 6
function test(arr, num) {
let idx = 0;
let newArr = [];
while (idx < arr.length) {
newArr.push(arr.slice(idx, idx = num));
}
return newArr;
}
let arr = [1, 2, 3, 4, 5, 6];
console.log(test(arr, 2));
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/473528.html
標籤:javascript 数组
上一篇:JSON決議物件內部物件的屬性?
