目 录CONTENT

文章目录

使用splice在数组中添加元素

Hello!你好!我是村望~!
2022-08-10 / 0 评论 / 0 点赞 / 244 阅读 / 572 字
温馨提示:
我不想探寻任何东西的意义,我只享受当下思考的快乐~

splice删除和添加操作!

很多人对传入两个以上的参数这种用法可能比较陌生。相对熟悉的应该还是 splice 用于删除的操作:

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

const arr = [1,2]; 
const beEdiot = arr.splice(1,1); 

console.log('原数组===>',arr.toString()); 
console.log('被删掉===>',beEdiot.toString());

输出

> "原数组===>"1"
> "被删掉===>"2"

可以看到,从索引值1开始删掉一个元素,splice返回的是被删掉的部分[2],原数组被改变,变为删除元素后的数组[1]

传入两个以上参数这种用法,是用于在删除的同时完成数组元素的新增
而从第三个位置开始的入参,都代表着需要添加到数组里的元素的值:

const arr = [0,1,6]
const beEdiot = arr.splice(2,0,2,3,4,5)

console.log('原数组===>',arr.toString()); 
console.log('被删掉===>',beEdiot.toString());

在这里,我们就会从索引2的位置开始删除0个元素,然后索引2的位置被换成了后续需要添加的元素!其他的元素被挤在了后面!

> "原数组===>" "0,1,2,3,4,5,6"
> "被删掉===>" ""

经常拿来对比的slice的

和splice最大的区别就是这个不会改变原数组!

slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。

const arr = [0,1,6]
const beEdiot = arr.slice(1,2);// 从索引1删到索引2,前包后不包

console.log('原数组===>',arr.toString()); 
console.log('被删掉===>',beEdiot.toString());

输出

> "原数组===>" "0,1,6"
> "被删掉===>" "1"

可以发现返回的也是被删除的元素组成的数组!原数组没有被修改!

0

评论区