[Easy] LeetCode JS 30 - 677. Chunk Array(陣列分塊)

2024年3月7日

💎 加入 E+ 成長計畫 與超過 300+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

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+ 成長計畫看到

解法一

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;
}
🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們