📅  最后修改于: 2023-12-03 15:16:18.217000             🧑  作者: Mango
slice()
是 JavaScript 数组中非常有用的一个方法,它可以从已有的数组中返回一个子数组,而不会改变原始数组。
array.slice(start, end)
start
:必需,从该索引处开始抽取原数组元素。如果 start
为负数,则表示从数组末尾开始算起的第 start
个元素。end
:可选,抽取终止的最后一个数组索引。若未指定,则一直截取到数组末尾。如果 end
为负数,则表示从数组末尾开始算起的第 end
个元素。如果 start
和 end
参数均未传递,则返回原数组的一个浅拷贝。
slice()
方法基本实现了从数组第 start
个元素开始复制,复制到第 end
个元素,不包括第 end
个元素,原数组不变。
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。原始数组不会被修改。
下面的例子演示了如何使用 slice()
方法:
let fruits = ['apple', 'banana', 'orange', 'lemon', 'pear'];
let citrus = fruits.slice(1, 3);
console.log(fruits); // ["apple", "banana", "orange", "lemon", "pear"]
console.log(citrus); // ["banana", "orange"]
上面的例子截取了 fruits
数组中从第一个元素开始的两个元素。简单来说,就是复制了 fruits
数组中第一个元素(索引值为 0
)后面的两个元素。
也可以使用 slice()
方法将一个类数组(array-like
)对象转换成一个新数组:
function list() {
return Array.prototype.slice.call(arguments);
}
let list1 = list(1, 2, 3);
console.log(list1); // [1, 2, 3]
在上面的例子中,slice()
方法用于将 arguments
对象(类数组对象)转换为新数组 [1,2,3]
。
slice()
返回的是一个新的数组对象,而不是原始的数组对象。此外,slice()
与 splice()
方法类似,但它们之间有很大的区别。splice()
方法会改变原始数组,而 slice()
方法不会改变原始数组,而是返回一个子数组。
slice()
方法是 JavaScript 语言中非常重要的一个方法,它让数组操作变得非常简单。记住,slice()
方法返回一个新的数组对象,并且不会改变原始数组。