在数组中查找第一个对象

时间:2017-11-19 17:17:45

标签: javascript

我有一个这样的数组:

const array = [
    {
        id: "1",
        value: "alpha"
    },
    {
        id: "2",
        value: "beta"
    },
    {
        id: "3",
        value: "beta"
    },
    {   
        id: "4",
        value: "omega"
    }
];

我需要一个只返回满足我的条件的第一个对象的方法,在这种情况下是属性值。

我用循环编写了这个方法:

findObject(array, value) {
    for(let i = 0; i < array.length; i++) {
         if(array[i].value === value) {
             return i;
         }
    }
    return -1;
}

没有循环,有没有办法做到这一点?谢谢。

2 个答案:

答案 0 :(得分:4)

您可以使用Array#findIndex作为回调索引。

const
    array = [{ id: "1", value: "alpha" }, { id: "2", value: "beta" }, { id: "3", value: "beta" }, { id: "4", value: "omega" }],
    value = 'beta',
    index = array.findIndex(o => o.value === value);
    
console.log(index);

对于该项目,您可以使用Array#find

const
    array = [{ id: "1", value: "alpha" }, { id: "2", value: "beta" }, { id: "3", value: "beta" }, { id: "4", value: "omega" }],
    value = 'beta',
    item = array.find(o => o.value === value);
    
console.log(item);

答案 1 :(得分:0)

在ES 5中,你也可以使用它。

enable_shared_from_this