📜  JavaScript数组slice()

📅  最后修改于: 2020-09-27 05:56:27             🧑  作者: Mango

JavaScript Array slice()方法将数组的一部分的浅表副本返回到新的数组对象中。

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()