在 JavaScript 中将数组拆分为块

Sahil Bhosale 2023年10月12日
  1. 使用 JavaScript 中的 slice() 方法拆分数组
  2. 在 JavaScript 中使用 slice() 方法和 forEach 循环分隔数组的每个元素
在 JavaScript 中将数组拆分为块

在 JavaScript 中,玩数组,对数组进行各种操作,无论是插入、删除还是数组内部的数据操作,都是每个程序员都应该知道的非常常见的事情。

JavaScript 语言为我们提供了各种很棒的内置函数,让我们可以玩弄和修改数组数据结构,从而使我们的生活变得更加轻松。我们将在本文中讨论的一种方法是 slice() 函数。使用这种方法,我们可以轻松地将整个数组划分或拆分为不同的块。

使用 JavaScript 中的 slice() 方法拆分数组

slice() 方法用于将数组切片或划分为更小的块。该函数接受两个参数作为输入,startendstart 表示你想要开始切片数组的起始索引,而 end 表示你想要停止切片或分割的索引。

在此过程中,请注意切片将在你指定的 end 索引之前停止一个索引。例如,如果你已将 end 定义为 5,该方法将停止对之前的一个索引进行切片,即在索引 4 处。

切片完成后,原始数组保持不变。现代浏览器支持这种方法。

在下面的代码示例中,我们有一个名为 numbersArr 的数组,它属于 integers 类型。我们可以传递 startend 参数来拆分或划分这个数组。在这里,我们传递了 25 作为 startend 参数。

let numbersArr = [1, 2, 3, 4, 5, 6, 7, 8];

console.log(numbersArr.slice(2, 5));
console.log('Original Array: ', numbersArr);

输出:

[3, 4, 5]
Original Array: [1, 2, 3, 4, 5, 6, 7, 8]

由于在索引 2 处,我们有元素编号 3,而在索引 5 之前有一个索引,因此我们有一个元素编号 5。因此,slice() 方法将拆分这个数组,我们将得到输出为 [3, 4, 5]。如前所述,原始数组保持不变,因此如果我们打印 numbersArr 数组,我们将获得包含所有元素的整个数组作为输出。

参数 startend 都是可选的。如果你不指定 start 位置,则 slice() 方法将采用 0 作为其默认值。如果你不指定 end 位置,它将在 array.length 方法的帮助下转到数组的最后一个元素。

在 JavaScript 中使用 slice() 方法和 forEach 循环分隔数组的每个元素

要分割或拆分所有数组元素,我们可以同时使用 slice() 方法和 for 循环。你也可以在这里使用 for 循环——这不是问题。此外,我们还有相同的 numbersArr 数组。每当我们在数组上使用 forEach 循环时,我们必须传递回调函数,它将为我们提供两件事:第一个是数组本身的元素,第二个是它的索引。在每次迭代中,我们将遍历数组的每个元素并获取其各自的索引。

let numbersArr = [1, 2, 3, 4, 5, 6, 7, 8];

numbersArr.forEach((value, index) => {
  console.log(numbersArr.slice(index, index + 1));
});

输出:

[ 1 ]
[ 2 ]
[ 3 ]
[ 4 ]
[ 5 ]
[ 6 ]
[ 7 ]
[ 8 ]

我们将把 index 值作为 start 参数和 index+1 作为结束参数传递给 slice() 方法。因此,例如,如果索引值为 0,则 index + 1 变为 0 + 1 = 1。我们知道 slice() 方法会在结束索引之前停止一个元素,我们想在这里拆分数组的每个元素;因此,我们最初将传递 split(0,1),以便该方法一次从数组中取出一个元素并打印它。

在第二次迭代中,它将是 split(1,2)。第三次迭代将是 split(2,3),依此类推,直到到达数组的末尾。

这样,我们将能够将数组的每个元素拆分为不同的块。如果你想稍后在代码中访问这些单独的元素,你还可以通过根据需要为每个元素创建单独的数组来存储这些元素。

作者: Sahil Bhosale
Sahil Bhosale avatar Sahil Bhosale avatar

Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.

LinkedIn

相关文章 - JavaScript Array