您的位置:首页 > Web前端 > JavaScript

js 数组的处理方法之 splice 和 slice

2020-07-21 04:14 1326 查看

今天测试人员给我提了个bug,说是数据不对,我看了一下显示的数据,立马就发现是把删除的元素展示了出来,然后就想到,数组的处理方法写错了,把 slice() 用成了 splice() ,想了想还是有必要把这个记录一下,提醒自己以后要细心。

首先说一下今天的问题:

后台数据返回了一个list数组(把项目数据简化了,能代表问题就行了)

list=[
{ id:1, name:' 张三' },
{ id:2, name: '李四' },
{ id:3, name: '王五' }
]

我需要展示的是数组除了第一个元素之外的元素。
我立马想到了数组的截取,我是这么写的

let newList = list.splice(0, 1);
// 然后把 newList 展示了出来

我没有注意到,splice 方法返回的是截取(删除)的数组。错误的认为,他返回的是截取后剩下的数据。造成了这次bug的产生。发现问题后,赶紧把 splice 改成了 slice,写法如下:

let newList = list.slice(1);
// 然后把 newList 展示了出来

给大家看一下 splice 和 slice 都返回了啥,大家就明白了

let newList = list.splice(0, 1);
console.log(newList);   // [ { id:1, name:' 张三' } ]

let newList2 = list.slice(1);
console.log(newList2);   // [ { id:2, name: '李四' },{ id:3, name: '王五' } ]

总结一下

用 splice 得到的是删除的元素组成的数组;
用 slice 得到的是删除元素后剩下的元素组成的数组。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: