javascript – 在对象数组中,找到属性与搜索匹配的对象的索引的最快方法

我一直在冲浪,试图找到一种有效的方式来做到这一点,但已经无处不在。我有一个对象数组,看起来像这样:

array[i].id = some number;
array[i].name = some name;

我想做的是找到对象的INDEXES,其中id等于,例如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);

例如,返回未定义,因为它可能应该。
提前致谢!

也许你想使用更高阶的功能,如“地图”。
假设您想要按’field’属性搜索:

var elementPos = array.map(function(x) {return x.id; }).indexOf(idYourAreLookingFor);
var objectFound = array[elementPos];
http://stackoverflow.com/questions/10557486/in-an-array-of-objects-fastest-way-to-find-the-index-of-an-object-whose-attribu

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 在对象数组中,找到属性与搜索匹配的对象的索引的最快方法