【问题标题】:How to delete an object in an array in lodash如何在lodash中删除数组中的对象
【发布时间】:2017-11-22 05:25:21
【问题描述】:

我有一个对象数组,我需要根据条件删除一些对象。如何使用 lodash map 功能实现它? 例如:

[{a: 1}, {a: 0}, {a: 9}, {a: -1}, {a: 'string'}, {a: 5}]

我要删除

{a: 0}, {a: -1}, {a: 'string'}

我怎样才能实现它?

【问题讨论】:

标签: javascript node.js lodash


【解决方案1】:

您可以使用 lodash 的 remove 功能来实现这一点。它在原地转换数组并返回已删除的元素

var array = [{a: 1}, {a: 0}, {a: 9}, {a: 5}];
var removed = _.remove(array, item => item.a === 0);

console.log(array);
// => [{a: 1}, {a: 9}, {a: 5}]

console.log(removed);
// => [{a: 0}]

【讨论】:

    【解决方案2】:

    ES6

    const arr = [{a: 1}, {a: 0}, {a: 9}, {a: 5}];
    
    const newArr = _.filter(arr, ({a}) => a !== 0);
    

    ES5

    var arr = [{a: 1}, {a: 0}, {a: 9}, {a: 5}];
    
    var newArr = _.filter(arr, function(item) { return item.a !== 0 });
    

    https://lodash.com/docs/4.17.4#filter

    【讨论】:

      【解决方案3】:

      除了 _.remove 或 _.filter 你也可以使用reject()

      var array = [{a: 1}, {a: 0}, {a: 9}, {a: 5}];
      var result = _.reject(array , ({a}) => a===0 });
      
      console.log(result);//[{a: 1}, {a: 9}, {a: 5}]
      

      https://jsfiddle.net/7z5n5ure/

      【讨论】:

        【解决方案4】:

        使用此 pass arr,您希望应用条件的键,值是您要检查的键的值。

        function removeElem(arr,key,value){
            return arr.filter(elem=>elem[key]===value)
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-03
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多