[Easy] LeetCode JS 30 - 677. Chunk Array(阵列分块)
2024年3月7日
💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源
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;
}