问题
我有这样一个数组:
[{prop1:"abc",prop2:"qwe"},{prop1:"bnmb",prop2:"yutu"},{prop1:"zxvz",prop2:"qwrq"},...]
如何在不迭代整个数组的情况下获取与条件匹配的对象的索引?
例如,给定prop2=="yutu",我想获得索引1。
我看到.indexOf()但是认为它用于简单的数组["a1","a2",...]。我也检查了$.grep()但这会返回对象,而不是索引。
解决
截至2016年,您应该使用Array.findIndex(ES2015 / ES6标准):
a = [
{prop1:"abc",prop2:"qwe"},
{prop1:"bnmb",prop2:"yutu"},
{prop1:"zxvz",prop2:"qwrq"}
];
index = a.findIndex(x => x.prop2 ==="yutu");
console.log(index);
谷歌Chrome,Firefox和Edge支持它。对于Internet Explorer,链接页面上有一个polyfill。
因此对于非常大的数组,简单的循环将比以下方式执行得更好findIndex:
来自:哆啦的时光机www.imooc.com/wenda/detai…