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个小例可知,当不删除元素时,原数组的添加是在指定的起始元素前面添加的。