📜  JavaScript数组slice()(1)

📅  最后修改于: 2023-12-03 15:16:18.217000             🧑  作者: Mango

JavaScript数组slice()

slice() 是 JavaScript 数组中非常有用的一个方法,它可以从已有的数组中返回一个子数组,而不会改变原始数组。

语法
array.slice(start, end)
  • start:必需,从该索引处开始抽取原数组元素。如果 start 为负数,则表示从数组末尾开始算起的第 start 个元素。
  • end:可选,抽取终止的最后一个数组索引。若未指定,则一直截取到数组末尾。如果 end 为负数,则表示从数组末尾开始算起的第 end 个元素。

如果 startend 参数均未传递,则返回原数组的一个浅拷贝。

返回值

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() 方法返回一个新的数组对象,并且不会改变原始数组。