[Easy] LeetCode JS 30 - 677. Chunk Array(陣列分塊)
2024年3月7日
💎 加入 E+ 成長計畫 如果你喜歡我們的內容,歡迎加入 E+,獲得更多深入的軟體前後端內容
LeetCode 30 Days of JavaScript
此題來自 Leetcode 的 30 天 JavaScript 挑戰
2677. Chunk Array題目描述
Lodash 的 chunk
是開發中經常被用的效用函式,也經常會在面試被問到。 chunk
能將輸入的陣列分割成指定長度的小組。並輸出一個新的陣列,包含原始陣列的元素,並按指定的 size
分組成子陣列。
const originalArray = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const chunkSize = 3;
// 輸出: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
const chunkedArray = chunkArray(originalArray, chunkSize);
本題解答
以下是本題的解答,詳細解題思路可以在 E+ 成長計畫 看到。如果想練習更多題目,推薦可以到 GreatFrontEnd 上練習。
解法一
function chunk(array, size = 1) {
let temp = [];
const result = [];
for (let i = 0; i < array.length; i++) {
temp.push(array[i]);
if (temp.length === size || i === array.length - 1) {
result.push(temp);
temp = [];
}
}
return result;
}
解法二
function chunk(array, size) {
const chunkedArray = [];
for (let i = 0; i < array.length; i += size) {
chunkedArray.push(array.slice(i, i + size));
}
return chunkedArray;
}