我有一个这样的数组:
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;
}
没有循环,有没有办法做到这一点?谢谢。
答案 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