使用lodash从具有属性的对象数组中提取

时间:2018-01-04 10:57:54

标签: javascript arrays object lodash

我有大量的对象,我需要获得具有属性def的对象。没有价值...... 提前谢谢。

2 个答案:

答案 0 :(得分:5)

您可以使用hasOwnProperty检查属性是否存在,Array.prototype.filter仅过滤这些项目。



objArray = [ { def: 1, bar: 2}, { foo: 3, bar: 4}, { def: 5, bar: 6} ];

var result = objArray.filter(item => item.hasOwnProperty('def'));
console.log(result);




用于es5兼容性



objArray = [{
  def: 1,
  bar: 2
}, {
  foo: 3,
  bar: 4
}, {
  def: 5,
  bar: 6
}];

var result = objArray.filter(function(item) {
  return item.hasOwnProperty('def')
});
console.log(result);




答案 1 :(得分:0)

尽管您可以尝试以下代码

,但在lodash中没有这样的功能
`let aFilteredArray = [];
    _.forEach(YourArray,function(oElement){
      if(!_.isEmpty(oElement.def)){
        aFilteredArray.push(oElement);
      }
    };