为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

皈依舞 2021-10-21 14:01:55
试图从数组中删除多个对象,我所做的解决方案很好并且工作正常,但我想要的是我不想过滤两次,想要以一种方式所以你能帮我找到最好的解决方案吗例子 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);
查看完整描述

3 回答

?
红糖糍粑

TA贡献1815条经验 获得超6个赞

或者您可以使用更简单的解决方案:

arrList.filter((a) => !['label1', 'label3'].includes(a.l))


查看完整回答
反对 回复 2021-10-21
?
慕后森

TA贡献1802条经验 获得超5个赞

您正在使用 2 个语句来过滤,第一个不等于label1和另一个语句label3。您可以使用 AND&&运算符将它们组合在一个语句中,如下所示

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


查看完整回答
反对 回复 2021-10-21
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

您可以使用&&将逻辑语句组合成单个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);


查看完整回答
反对 回复 2021-10-21
  • 3 回答
  • 0 关注
  • 324 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信