JavaScript中数组splice()和slice()的区别

先说结论:

splice:改变原来的数组本身

slice:开辟新空间存储新数组

splice:

粘接的意思,就是把数组打碎了,然后粘在一起,所以它改变了原数组

参数说明:

splice(beginIndex, deleteLength, …args);

beginIndex: 表示的是从数组的beginIndex下标开始删除。

deleteLength:表示的是删除deleteLength长度的元素。

…args: 表示的是要在此插入的元素。

举例说明:

let arr=["啊","吧","啊","吧","啊","吧","啊","吧"];
console.log(arr.splice(2,4,"a:","b","a"));
console.log(arr);

表示的含义是,

从arr数组的下标为2的位置删除4个元素,

再插入[“a”,“b”,“a”]三个元素,

arr数组本身也被改变。

slice:

部分,片段的意思,就是将原数组摘取了一部分下来,并没有改变原数组

参数说明:

slice(beginIndex, endIndex);

beginIndex: 表示的是从数组的beginIndex下标开始拷贝。

endIndex: 表示的是从数组的endIndex停止拷贝。

拷贝的区间是 [beginIndex,endIndex),左闭右开区间

举例说明:

let arr=["啊","吧","啊","吧","啊","吧","啊","吧"];
console.log(arr.slice(1,4));
console.log(arr);

表示的含义是,

将arr数组的下标[1,4)拷贝一份,

arr数组本身不被改变。

经验分享 程序员 微信小程序 职场和发展