JavaScript slice 方法
最后修改于 2025 年 4 月 4 日
在本文中,我们将展示如何使用 JavaScript 中的 slice 方法提取数组元素。
数组切片
数组切片是将数组的一部分提取到新数组中的操作。slice 方法返回数组的一部分的浅拷贝到一个新的数组对象中。原始数组不会被修改。
该方法接受两个可选参数:开始索引和结束索引。开始索引是包含的,而结束索引是不包含的。如果没有提供参数,则返回整个数组的副本。
负索引可用于指示从数组末尾开始的位置。 当您需要处理数组的子集,同时保留原始数据时,slice 方法通常很有用。
基本切片示例
以下示例演示了 slice 方法的基本用法。
main.js
const fruits = ['apple', 'banana', 'orange', 'mango', 'kiwi']; const citrus = fruits.slice(1, 3); console.log(fruits); // Original array unchanged console.log(citrus); // New sliced array
我们创建一个水果数组,并从索引 1 到 3(不包括 3)提取元素。 原始数组保持不变。slice() 方法返回一个包含所选元素的新数组。
$ node main.js [ 'apple', 'banana', 'orange', 'mango', 'kiwi' ] [ 'banana', 'orange' ]
使用负索引
slice 方法可以接受负索引来从数组的末尾开始计数。
main.js
const numbers = [1, 2, 3, 4, 5, 6, 7, 8]; const lastThree = numbers.slice(-3); console.log(numbers); console.log(lastThree);
我们使用负的开始索引提取最后三个元素。 当只提供一个负参数时,slice 从该位置提取到末尾。 负索引从数组的末尾向后计数。
$ node main.js [ 1, 2, 3, 4, 5, 6, 7, 8 ] [ 6, 7, 8 ]
省略结束参数
当省略结束参数时,slice 提取到数组的末尾。
main.js
const colors = ['red', 'green', 'blue', 'yellow', 'purple']; const fromSecond = colors.slice(1); console.log(colors); console.log(fromSecond);
我们从索引 1 开始到末尾对数组进行切片。 当省略结束参数时,默认为数组长度。 这对于获取某个位置之后的所有元素很有用。
$ node main.js [ 'red', 'green', 'blue', 'yellow', 'purple' ] [ 'green', 'blue', 'yellow', 'purple' ]
复制整个数组
slice 方法可以创建整个数组的浅拷贝。
main.js
const original = [10, 20, 30]; const copy = original.slice(); console.log(original); console.log(copy); console.log(original === copy); // false - different references
调用 slice 没有任何参数会创建一个包含所有元素的新数组。 这会创建一个浅拷贝,其中基本值被复制,但对象引用在数组之间共享。
$ node main.js [ 10, 20, 30 ] [ 10, 20, 30 ] false
结合正负索引
slice 方法可以在同一次调用中结合正负索引。
main.js
const letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']; const middle = letters.slice(2, -2); console.log(letters); console.log(middle);
我们提取从索引 2 开始到倒数第二个元素(不包括)的元素。 这演示了正负索引如何协同工作以选择特定范围。
$ node main.js [ 'a', 'b', 'c', 'd', 'e', 'f', 'g' ] [ 'c', 'd', 'e' ]
来源
在本文中,我们演示了如何使用 slice() 方法在 JavaScript 中提取数组元素。
作者
列出 所有 JS 数组函数。