slice()
方法用于返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(即不包含原型属性)。原始数组不会被改变。这个方法可以让你从数组中提取一段连续的元素,并形成一个新的数组。
语法
array.slice([begin[, end]])
begin
(可选):指定开始截取的位置。如果为负数,则表示从数组末尾开始计算的位置。默认值为0。end
(可选):指定结束截取的位置(但不包括该位置的元素)。如果未提供此参数,则将使用数组的长度。如果为负数,则表示从数组末尾开始计算的位置。
注意点
slice()
不会修改原数组,而是返回一个新的数组。- 如果
begin
或end
的值超出数组的范围,它们会被自动调整到合法范围内。
示例代码
让我们通过几个例子来看看如何使用 slice()
方法。
示例 1:基本用法
假设我们有一个数组 numbers
,我们想从中获取前三个元素:
const numbers = [1, 2, 3, 4, 5]; const firstThreeNumbers = numbers.slice(0, 3); console.log(firstThreeNumbers); // 输出: [1, 2, 3]
这里,slice(0, 3)
表示从索引0开始,直到索引3之前的所有元素,因此输出是 [1, 2, 3]
。
示例 2:负数索引
我们也可以使用负数来从数组末尾开始选择元素:
const fruits = ['apple', 'banana', 'cherry', 'date']; const lastTwoFruits = fruits.slice(-2); console.log(lastTwoFruits); // 输出: ['cherry', 'date']
在这个例子中,slice(-2)
表示从倒数第二个元素开始到最后一个元素的所有元素。
示例 3:不传入 end
参数
如果不提供 end
参数,slice()
将复制数组中从 begin
开始到数组末尾的所有元素:
const colors = ['red', 'green', 'blue', 'yellow']; const yellowAndBeyond = colors.slice(3); console.log(yellowAndBeyond); // 输出: ['yellow']
这里,slice(3)
会复制从索引3开始到数组末尾的所有元素,因此结果是 ['yellow']
。