JavaScript / Lodash / Angular 1 - 在对象数组中搜索并查找属性

时间:2017-10-02 09:18:11

标签: javascript arrays angular ecmascript-6 lodash

我想查看一个对象数组,如果它包含一个属性,如果找到它则返回true,如果找不到则返回false

我的数组的一个例子: this.realEstateProjectMotivation.realEstateProjectOnSales[0]这值得:

[
  {
    "id": 30,
    "satisfied": false,
    "onSaleSince":"1 day"
  }
]

我想查看realEstateProjectOnSales是否包含onSaleSincesatisfied属性

我怎么能用Lodash或EcmaScript 2015来做呢?

3 个答案:

答案 0 :(得分:2)

您可以使用in operator检查对象中是否存在属性。您可以使用Array#some循环数组,以查找是否至少有一个对象包含属性:



viewDidLoad()




答案 1 :(得分:1)

使用lodash#has方法很容易:

let hasProps = _.has(arr, '[0].satisfied') && _.has(arr, '[0].onSaleSince');

const arr = [
  {
    "id": 30,
    "satisfied": false,
    "onSaleSince":"1 day"
  }
];

let hasProps = _.has(arr, '[0].satisfied') && _.has(arr, '[0].onSaleSince');
console.log(hasProps);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.4/lodash.min.js"></script>

答案 2 :(得分:0)

ul