在对象数组中,查找其属性与搜索匹配的对象的索引的最快方法
2022-08-30 02:26:56
我一直在四处冲浪,试图找到一种有效的方法来做到这一点,但一无所获。我有一个对象数组,如下所示:
array[i].id = some number;
array[i].name = some name;
我想做的是查找 id 等于的对象的 INDEXES,例如,0,1,2,3 或 4 之一。我想我可以做这样的事情:
var indexes = [];
for(i=0; i<array.length; i++) {
(array[i].id === 0) ? { indexes[0] = i }
(array[i].id === 1) ? { indexes[1] = i }
(array[i].id === 2) ? { indexes[2] = i }
(array[i].id === 3) ? { indexes[3] = i }
(array[i].id === 4) ? { indexes[4] = i }
}
虽然这可以工作,但它看起来非常昂贵和缓慢(更不用说丑陋了),特别是如果array.length可能很大。关于如何稍微修饰一下的想法?我想过以某种方式使用array.indexOf,但我不知道如何强制语法。这
array.indexOf(this.id === 0);
例如,返回未定义,因为它可能应该如此。