我一直在衝浪,試圖找到一種有效的方法來做到這一點,但無處可去。我有對象的數組,看起來像這樣:在對象數組中,找到屬性匹配搜索對象的索引的最快方法
array[i].id = some number;
array[i].name = some name;
我想要做的是找到其中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);
例如,返回未定義,因爲它可能應該。 在此先感謝!
如果你有一個普通的舊的陣列,你可以做一個新的方式回報指數1正在迭代。這就是數組,是由數組索引排序的一堆對象。 –
今天剛剛遇到這篇文章,對於所有後來者來說,ECMAScript 2015中有一個新的數組方法'Array.prototype.findIndex()'。接受的答案非常棒。 –