slice 和splice 的区别 js


今天写一道算法题时候用了splice但是没写对,感觉跟slice有点弄混
总结下slice 和splice的用法

slice

定义和用法

slice() 方法选取基于索引的元素的子集。

子集是一个属于大的集合中的一部分的集合。

该方法用于通过开始点和结束点来限制组合中元素的选择:start 参数是创建子集的开始索引(从 0 开始),stop 参数是一个可选的结束点。
在这里插入图片描述
例如:
一个数组var arr=[5,8,9,8,5,3,1,4,2,7];

一个参数

正数

arr.slice(3)
得到[8,5,3,1,4,2,7]
即:从角标为3的位置开始(包括角标为3的数据)往后的数据

负数

arr.slice(-3)
得到:[4,2,7]
即:倒着数第三个开始向后所以数据

两位参数

正数

arr.slice(3,6)
得到:[8,5,3]
即:从角标为3开始到角标为6的数据前面一个数据即选择范围为角标为3-5的数据

负数

arr.slice(-5,-3)
得到[3,1]
即:-5到-4的的数据
都是向后数数据返回

splice

定义和用法

splice() 方法用于添加或删除数组中的元素。

注意:这种方法会改变原始数组。
在这里插入图片描述

返回值
如果仅删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。
例如:

两个参数

一个数组var arr=[5,8,9,8,5,3,1,4,2, 7];

正数

arr.splice(3,6)
console.log(arr)返回[5,8,9,7]

如果直接console.log(arr.splice)则返回[8,5,3,1,4,2]

就是说 arr.splice是选择了需要删除的数组
arr只剩下了删除后的数组
这样的话也可以这样用比如说你想去个数组的角标3往后6位就可以用这种方法
直接var b=arr.splice(3,6);
这样得到的b就恰好是角标3往后6位

负数

同理arr.splice(-n,m)
倒数第n个数开始数m位为要删除的数组,如果m大于剩余位数则取剩余位数

单一个参数

正数

arr.splice(3);得到的是0-角标2的数组
选中要删除的是角标3开始一直到数组末尾

负数

如果这个数为负意思和slice相同,都是从末尾向前数第几个开始向后到数组末为选中需要删除的数据
如:b=arr.splice(-3);得到b为[4,2,7,];
原数组arr为[5,8,9,8,5,3,1]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值