猿问

从数组中删除多个对象并返回更新的数组

试图从数组中删除多个对象,我所做的解决方案很好并且工作正常,但我想要的是我不想过滤两次,想要以一种方式


所以你能帮我找到最好的解决方案吗


例子


 const arrList = [{v:'1',l:'label1'},{v:'2',l:'label2'}, 

                  {v:'3',l:'label3'}, {v:'4',l:'label4'}, 

                  {v:'5',l:'label5'}]

const filter1 = arrList.filter((a) => a.l !== 'label1')

const filter3 = filter1.filter((a) => a.l !== 'label3')

console.log(filter3);


皈依舞
浏览 325回答 3
3回答

红糖糍粑

或者您可以使用更简单的解决方案:arrList.filter((a) => !['label1', 'label3'].includes(a.l))

慕后森

您正在使用 2 个语句来过滤,第一个不等于label1和另一个语句label3。您可以使用 AND&&运算符将它们组合在一个语句中,如下所示const filter1 = arrList.filter((a) => a.l !== 'label1' && a.l !== 'label3')

慕莱坞森

您可以使用&&将逻辑语句组合成单个filter()表达式:const arrList = [{v:'1',l:'label1'},{v:'2',l:'label2'},{v:'3',l:'label3'}, {v:'4',l:'label4'},{v:'5',l:'label5'}]const filtered = arrList.filter(a => a.l !== 'label1' && a.l !== 'label3')console.log(filtered);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答