检查对象列表中任何对象的属性中是否存在值

时间:2018-10-10 10:10:10

标签: angular optimization

我有以下列表:

.main

我想检查这些对象中任何一个的“ _ name” 属性中是否存在“ FIX.4.3” 。 我无法更改列表的格式(无论我想要多少),因为我是从其他地方获取的。 我知道我可以遍历对象,但是我正在寻找更好的方法。 预先感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用some

  

some()方法测试数组中的至少一个元素是否通过了由提供的函数实现的测试。

示例:

const data = [
        {
            "_name": "FIX.4.0"
        },
        {
            "_name": "FIX.4.1"
        },
        {
            "_name": "FIX.4.2"
        },
        {
            "_name": "FIX.4.3"
        },
        {
            "_name": "FIX.4.4"
        }
    ];
    
    // FIX.4.4 is there
    console.log(data.some(x => x._name === "FIX.4.4"));
    
    // FIX.NOT.THERE is, well, not
    console.log(data.some(x => x._name === "FIX.NOT.THERE"));

答案 1 :(得分:0)

您可以使用 find

checkValue(value){
    if(this.array.find(function(obj) { return obj._name === value; }))
      return true
    else
      return false;
}

答案 2 :(得分:0)

与懒惰一样,但使用了像fateme fazli这样的find

示例

const data = [
    {
        "_name": "FIX.4.0"
    },
    {
        "_name": "FIX.4.1"
    },
    {
        "_name": "FIX.4.2"
    },
    {
        "_name": "FIX.4.3"
    },
    {
        "_name": "FIX.4.4"
    }
];

const result = (data.find(x => x._name === "FIX.4.3") === undefined) ? false : true;

console.log(result);