Given an array arr and a chunk size size, return a chunked array. A chunked array contains the original elements in arr, but consists of subarrays each of length size. The length of the last subarray may be less than size if arr.length is not evenly divisible by size.
You may assume the array is the output of JSON.parse. In other words, it is valid JSON.
Please solve it without using lodash's _.chunk function.
給定一個陣列arr和一個區塊大小size,傳回一個分塊陣列。
分塊陣列包含arr中的原始元素,但由每個長度為size的子陣列組成。
如果arr.length不能被size整除,則最後一個子陣列長度可能小於size。
您可以假設該陣列是JSON.parse的輸出。 換句話說,它是有效的 JSON。
請在不使用 lodash 的 _.chunk 函數的情況下解決它。
arr和一個區塊大小size,傳回一個分塊陣列。
const chunk = function(arr,size){
let chunkedAry = [];
//chunk分塊邏輯
return chunkedAry;
}
arr中的原始元素,但由每個長度為size的子陣列組成。
arr.length不能被size整除,則最後一個子陣列長度可能小於size。let arr=[1,2,3,4,5,6,7,8];
let size=3;
chunkAry=[[1,2,3],[4,5,6],[7,8]];
索引%size===0的時候,該值會是一個分塊陣列的首項arr,根据索引值進行分組處理
const chunk = function(arr,size){
let chunkedAry = [];
//chunk分塊邏輯
for(let i=0;i<arr.length;i+=1){
//在chunkAry先建置[]空陣列
if(i%size===0){
chunkedAry.push([]);
}
//push arr的原始元素 以進行分組
//在i=0的時候透過if判斷已在chunkAry中新增空陣列[ ]
//因此i=0會是 chunkAry[0].push(arr[0]);
//因此i=1會是 chunkAry[0].push(arr[1]);
//因此i=2會是 chunkAry[0].push(arr[2]);
//因此i=3會是 chunkAry[1].push(arr[3]);
//因此i=4會是 chunkAry[1].push(arr[4]); ..類推
chunkedAry[chunkedAry.length - 1].push(arr[i]);
}
return chunkedAry;
}
//testcase1
let arr1 = [1,2,3,4,5];
let size1 = 1;
let chunk1 = chunk(arr1,size1);
console.log(chunk1);
//testcase2
let arr2 = [1,9,6,3,2];
let size2 = 3;
let chunk2 = chunk(arr2,size2);
console.log(chunk2);
//testcase3
let arr3 = [8,5,3,2,6];
let size3 = 6;
let chunk3 = chunk(arr3,size3);
console.log(chunk3);