JavaScript 数组 slice() 方法

2025 年 7 月 30 日 | 阅读 5 分钟
JavaScript Array slice() method

JavaScript 数组 slice() 方法 从给定的 数组 中提取一部分并返回。此方法不会更改原始数组。

语法

slice() 方法由以下语法表示

参数

start - 可选。它表示方法开始提取元素的索引。

end - 可选。它表示方法停止提取元素的索引。

slice() 方法返回一个包含提取元素的新数组。

JavaScript 数组 slice() 方法示例

让我们通过示例来理解数组 slice() 方法。

示例 1:不带参数的数组 slice() 方法

在此示例中,我们将切片一个数组而不传递任何 参数

代码

示例

立即执行

输出

[ 'Apple', 'Banana', 'Orange', 'Mango' ]

说明

在上面的代码中,我们使用 let 创建了一个名为 myArray 的变量。这个数组包含水果名称。我们在 myArray 上使用了 slice() 方法并将结果存储在变量 res 中,然后我们将结果记录到控制台。由于我们调用 slice() 方法时没有参数,因此它会按原样复制整个数组。

示例 2:带索引号的数组 slice() 方法

在此示例中,我们将通过仅传递一个将作为索引号的索引号来切片数组。它将返回该索引处的数组元素。

代码

示例

立即执行

输出

[ 'Mango' ]

说明

在上面的代码中,我们定义了 myArray,它包含四个字符串元素。我们在 myArray 上使用了带一个参数的 slice() 方法并将结果存储在变量 res 中,然后记录结果。我们已将 3 作为参数,这是一个索引值,它将数组从索引 3 切片到数组的末尾。

示例 3:带两个索引号的数组 slice() 方法

在此示例中,我们将传递两个索引号来切片数组。它将返回这两个索引之间的所有元素。它将包含第一个参数的值并排除第二个参数的值。

代码

示例

立即执行

输出

[ 'Banana', 'Orange' ]

说明

在上面的示例中,我们定义了一个名为 myArray 的变量,其中包含字符串元素。我们在 myArray 上使用了带两个参数的 slice() 方法。我们将结果存储在 res 中并在控制台中得到输出。它将从索引号 1 开始切片数组,并在索引号 3 处结束数组。

示例 4:传递单个负索引值。

在下面的示例中,我们将传递一个负值作为索引来提取元素。

代码

示例

立即执行

输出

[ 'Bootstrap' ]

说明

在上面的代码中,我们定义了一个名为 arr 的数组,其中包含四个元素。我们将一个负索引值传递给 slice() 方法并将输出存储在名为 result 的变量中。负索引意味着从数组末尾开始计数元素,因此我们输入了 -1 索引,它会给出数组的最后一个值。

示例 5:传递两个负索引值。

在此示例中,我们将传递两个负索引值来从给定的数组中提取元素。

代码

示例

立即执行

输出

[ 'AngularJS', 'Node.js', 'JQuery' ]

说明

在上面的代码中,我们定义了一个名为 arr 的数组,其中包含四个元素。我们传递了两个负索引并将输出存储在名为 result 的变量中。我们传递了 -4 和 -1 值。索引 -4 对应于第一个元素,-1 对应于最后一个元素。因此 slice(-4, -1) 会从数组中提取介于 -4 和 -1 之间的最后一个元素。

slice() 方法的用途

  • 有助于创建数组的浅拷贝:当我们在不传递任何参数的情况下调用 slice() 方法时,它会创建一个包含原始数组所有元素的新数组。这被称为浅拷贝,意味着新数组引用相同的对象。
  • 有助于将类数组对象转换为数组:当我们使用 slice.call() 将类数组对象(如 arguments、NodeLists 等)转换为实际数组时。当我们需要应用类数组对象上不可用的数组方法时,这很有用。
  • 用于字符串操作:我们可以使用 slice() 方法提取字符串的一部分。通过输入开始索引和可选的结束索引,可以利用它来提取字符串的一部分。
  • 用于从数组末尾获取元素:我们可以利用 slice() 方法的负索引来从数组的最后一个索引获取元素。例如,如 slice (-3) 中,我们获取数组的最后 3 个元素。

结论

数组中的 slice() 方法是提取数组一部分的最重要方法之一。在本文中,我们了解了 slice() 方法是什么,它提取数组一部分的各种方法以及 slice 方法的用途。

常见问题解答 (FAQs)

1. 数组中的 slice() 方法做什么?

数组中的 slice() 方法提取数组的一部分并用提取的部分构造一个新数组。当开发人员使用 slice() 方法时,它不会改变原始数组。

2. slice() 与 splice() 有何不同?

slice() 方法不会对原始数组进行任何更改。它返回一个新数组。但是,splice() 方法通过添加、替换或删除元素来更改原始数组。

3. 如何利用 slice() 来提取数组或字符串的最后一个元素?

我们可以使用负索引值,它可以从末尾开始计数。例如,myArray.slice(-1) 返回一个包含最后一个元素的数组。

4. 我们可以将 slice() 方法用于字符串和数组吗?

是的,slice() 方法可用于 JavaScript 中的字符串和数组。该方法本身对执行它的数据类型有不同的作用,并相应地返回值。对于字符串,slice() 提取字符并返回一个新字符串,而对于数组,slice() 提取元素并返回一个新数组。

5. slice() 方法是创建深拷贝还是浅拷贝?

slice() 方法创建浅拷贝。原始数据类型(如 数字字符串布尔值 等)通过值复制,但对象和嵌套数组通过引用复制。如果我们修改了副本数组中的一个嵌套对象,那么该修改将反映在原始数组中,因为两个数组都引用内存中的同一个对象。


下一主题JavaScript 数组