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

问题描述 投票:0回答:2

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

javascript arrays object lodash
2个回答
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);

0
投票

尽管您可以尝试以下代码,但在lodash中没有这样的功能

`let aFilteredArray = [];
    _.forEach(YourArray,function(oElement){
      if(!_.isEmpty(oElement.def)){
        aFilteredArray.push(oElement);
      }
    };
© www.soinside.com 2019 - 2024. All rights reserved.