Der schnellste Weg, um in einem Array von Objekten den Index eines Objekts zu finden, dessen Attribute mit einer Suche übereinstimmen

Ich habe ein bisschen herumgesurft, um einen effizienten Weg zu finden, aber ich bin nirgendwo hingekommen. Ich habe eine Reihe von Objekten, die so aussehen:

<code>array[i].id = some number;
array[i].name = some name;
</code>

Was ich tun möchte, ist, die INDEXES der Objekte zu finden, bei denen id zum Beispiel eins von 0,1,2,3 oder 4 ist. Ich nehme an, ich könnte einfach etwas tun wie:

<code>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 }
}
</code>

Während dies funktionieren würde, sieht es ziemlich teuer und langsam aus (ganz zu schweigen von hässlich), insbesondere wenn array.length groß sein könnte. Irgendwelche Ideen, wie man das ein bisschen aufpeppt? Ich dachte daran, array.indexOf zu verwenden, aber ich verstehe nicht, wie ich die Syntax erzwingen soll. Diese

<code>array.indexOf(this.id === 0);
</code>

Gibt beispielsweise undefined zurück, wie es wahrscheinlich sein sollte. Danke im Voraus!

Antworten auf die Frage(16)

Ihre Antwort auf die Frage