【问题标题】:remove multiple object from array and return updated array从数组中删除多个对象并返回更新的数组
【发布时间】:2020-01-19 10:55:50
【问题描述】:

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

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

示例

 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);

【问题讨论】:

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

标签: javascript jquery reactjs ecmascript-6


【解决方案1】:

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

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

【讨论】:

  • 请避免在没有任何解释的情况下粘贴代码
  • @user2682863 刚刚添加了解释。
【解决方案2】:

你可以像这样过滤它。

const myFilter = arrList.filter(label => label.l !== 'label1' && label.l !== 'label3');

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      试试这样的!

       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' && a.l !== 'label3')
      console.log(filter1);

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-06-19
          • 1970-01-01
          • 2018-04-26
          • 1970-01-01
          • 1970-01-01
          • 2019-01-18
          • 2020-04-06
          • 2020-08-17
          相关资源
          最近更新 更多