JS—数组的Splice( )

142 阅读2分钟

1.用法概述

splice()通过删除替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组,没创建新数组。

2.语法

arr.splice(index,deleteCount,item1, item2, ...)

1)参数

index——必须。规定删除/添加数组元素的位置(默认从 0 开始计数)。如果规定的位置是负数,则表示从数组末尾的第几位往后开始删除。

deleteCount——可选。要删除的数组元素个数。若设置为0,则不删除元素。

item1, ... itemX ——可选。要向原数组添加的新数组元素。从指定的位置开始

2)返回值

如果有元素被删除,则返回被删除的元素所组成的一个新数组。如果没有要删除的元素(即deleteCount设置为0),则返回一个空数组。

3.案例用法

//一、删除
<!--从数组下标2开始,删除0个元素,添加0个元素,相当于截取数组操作-->
const arr = [1,2,3,7,9,9,2,1]
const arr1 = arr.splice(2)  //[ 1, 2 ]
console.log(arr);   //[ 3, 7, 9, 9, 2, 1 ]

const arr1 = arr.splice(-2)  //[ 2, 1 ]
console.log(arr);   //[ 1, 2, 3, 7, 9, 9 ]

<!--从数组下标2开始,删除1个元素,即删除现有的元素-->
const arr = [1,2,3,7,9,9,2,1]
const arr1 = arr.splice(2,1)  //[ 3 ]
console.log(arr);   //[ 1,2,7,9,9,2,1 ]

const arr1 = arr.splice(-2,1) //[ 2 ]
console.log(arr);   //[ 1,2,3,7,9,9,1 ]

//二、删除并添加
<!--从数组下标2开始,删除1个元素,添加'1',即替换现有元素:3-->'1'-->
const arr = [1,2,3,7,9,9,2,1]
const arr1 = arr.splice(2,1,'l')  //[ 3 ]
console.log(arr);   //[ 1,2,'l',7,9,9,2,1 ]

const arr1 = arr.splice(-2,1,'l') //[ 2 ]
console.log(arr);   //[ 1,2,3,7,9,9,'1',1 ]

<!--从数组下标2开始,删除1个元素,添加'1''m',即原地添加新的元素-->
const arr = [1,2,3,7,9,9,2,1]
const arr1 = arr.splice(2,1,'l','m')  //[ 3 ]
console.log(arr);   //[ 1,2,'l','m',7,9,9,2,1 ]

const arr1 = arr.splice(-2,1,'l','m') //[ 2 ]
console.log(arr);   //[ 1,2,3,7,9,9,'l','m',1 ]

//三、不删除只添加
<!--从数组下标2开始,删除0个元素,添加'1'-->
const arr = [1,2,3,7,9,9,2,1]
const arr1 = arr.splice(2,0,'l')  //[ ]
console.log(arr);   //[ 1,2,'l',3,7,9,9,2,1 ]

const arr1 = arr.splice(-2,0,'l') //[ ]
console.log(arr);   //[ 1,2,3,7,9,9,'1',2,1 ]

小结:

1.从第2个小例可知,删除元素时,从包含它自己本身开始删除(即含第index位)

2.从第4个小例可知,向数组添加元素时,可添加多个

3.从第5个小例可知,当不删除元素时,原数组的添加是在指定的起始元素前面添加的。

developer.mozilla.org/zh-CN/docs/…