JavaScript 数组 slice()

slice() 方法将数组的一部分浅拷贝到一个新的数组对象中。

示例

let numbers = [2, 3, 5, 7, 11, 13, 17];

// create another array by slicing numbers from index 3 to 5 let newArray = numbers.slice(3, 6);
console.log(newArray); // Output: [ 7, 11, 13 ]

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 中,您也可以使用负数的 startend 索引。最后一个元素的索引是 -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 }

另请阅读

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战