slice()
方法的语法为:
arr.slice(start, end)
在这里, arr是一个数组。
slice()参数
slice()
方法采用:
- start (可选)-选择的开始索引。如果未提供,则选择从开始0开始。
- end (可选)-选择的结束索引(不包括)。如果未提供,则选择在最后一个元素的索引处结束。
从slice()返回值
- 返回包含提取的元素的新数组。
示例1:JavaScript slice()方法
let languages = ["JavaScript", "Python", "C", "C++", "Java"];
// slicing the array (from start to end)
let new_arr = languages.slice();
console.log(new_arr); // [ 'JavaScript', 'Python', 'C', 'C++', 'Java' ]
// slicing from the third element
let new_arr1 = languages.slice(2);
console.log(new_arr1); // [ 'C', 'C++', 'Java' ]
// slicing from the second element to fourth element
let new_arr2 = languages.slice(1, 4);
console.log(new_arr2); // [ 'Python', 'C', 'C++' ]
输出
[ 'JavaScript', 'Python', 'C', 'C++', 'Java' ]
[ 'C', 'C++', 'Java' ]
[ 'Python', 'C', 'C++' ]
示例2:具有负索引的JavaScript slice()
在JavaScript中,您还可以使用负的开始和结束索引。最后一个元素的索引是-1 ,第二个最后一个元素的索引是-2 ,依此类推。
const languages = ["JavaScript", "Python", "C", "C++", "Java"];
// slicing the array from start to second-to-last
let new_arr = languages.slice(0, -1);
console.log(new_arr); // [ 'JavaScript', 'Python', 'C', 'C++' ]
// slicing the array from third-to-last
let new_arr1 = languages.slice(-3);
console.log(new_arr1); // [ 'C', 'C++', 'Java' ]
输出
[ 'JavaScript', 'Python', 'C', 'C++' ]
[ 'C', 'C++', 'Java' ]
示例3:以对象为数组元素的JavaScript slice()
slice()
方法按以下方式浅表复制数组的元素:
- 它将对象引用复制到新数组。 ( 例如 ,嵌套数组)因此,如果修改了引用的对象,则更改在返回的新数组中可见。
- 它将字符串和数字的值复制到新数组。
let human = {
name: "David",
age: 23,
};
let arr = [human, "Nepal", "Manager"];
let new_arr = arr.slice();
// original object
console.log(arr[0]); // { name: 'David', age: 23 }
// making changes to the object in new array
new_arr[0].name = "Levy";
// changes are reflected
console.log(arr[0]); // { name: 'Levy', age: 23 }
输出
{ name: 'David', age: 23 }
{ name: 'Levy', age: 23 }
推荐读物: JavaScript Array.splice()