📌  相关文章
📜  将数组拆分为块 javascript (1)

📅  最后修改于: 2023-12-03 14:53:52.309000             🧑  作者: Mango

将数组拆分为块 JavaScript

在 JavaScript 中,我们经常需要将一个数组拆分成多个块,以对每个块进行一些特定的操作。例如,我们可以将一个长的数组均分为多个小块,或者按某种条件将一些数组元素组成块。

方法一:使用 slice() 方法

最常见的方法是使用内置的 slice() 方法。它可以根据给定的起始索引和结束索引创建一个新的数组,并返回该数组的副本。

function chunkArray(arr, size) {
  let result = []
  for (let i = 0; i < arr.length; i += size) {
    result.push(arr.slice(i, i + size))
  }
  return result
}

这个函数将数组 arr 拆分成大小为 size 的块,并将它们放入一个新数组中。注意,如果最后一个块不足 size 个元素,则它会被忽略。

方法二:使用递归

另一种方法是使用递归。这种方法对于不同大小的块更加灵活和有效。我们可以不断地递归拆分数组,直到只剩下一个元素,然后将这些元素拼接在一起。

function chunkArray(arr, size) {
  if (arr.length <= size) {
    return [arr]
  } else {
    return [arr.slice(0, size)].concat(chunkArray(arr.slice(size), size))
  }
}

这个函数将数组 arr 拆分为大小为 size 的块,并将它们放在一个新数组中。注意,这种方法与 slice() 方法不同,如果最后一个块不足 size 个元素,则它将作为一个单独的块返回。

示例

让我们使用上面的两种方法来将一个数组拆分成大小为 2 的块:

const myArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

const chunkedArray1 = chunkArray(myArray, 2)
// Output: [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]

const chunkedArray2 = chunkArray(myArray, 3)
// Output: [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]

如您所见,我们可以根据需要指定不同的块大小,并使用两种方法之一来拆分数组。