有个需求,需要在数组里删除多个元素 一开始就想到了用splice最后根据需求使用了filter方法
一开始就想到了用splice this.newList.forEach((item,index)=>{if(item.ptid === newItem.id){this.list.splice(index,1)}})
但是如果使用splice的话删除单个元素还好,但是删除多个元素的话就不行了。因为如意的火使用splice删除的一个元素的时候,整个数组的下标就变了,下标变了但是splice方法参数就数组的下标,这样一来就无法正常准确的删除对应的数组元素了
最后根据需求使用了filter方法–上个dome
var ages = [32, 33, 16, 40];function myFunction() { console.log(ages.filter(item=>item!==16)) ;}输出结果[32,33,40]至此结果已经很明显了,filter方法会根据条件过滤掉我们不需要的元素,返回一个新的数组,从而达到我们删除数据里面多个元素的目的
最终方案
this.newList = this.newList.filter(item=>item.ptid !== newItem.id)过滤掉了我们不要的元素,得到了一个新数组,也就是说达到了我们想要删除多个数组的目的