En una matriz de objetos, la forma más rápida de encontrar el índice de un objeto cuyos atributos coinciden con una búsqueda

He estado navegando un poco tratando de encontrar una manera eficiente de hacer esto, pero no he llegado a ninguna parte. Tengo una matriz de objetos que se parece a esto:

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

Lo que quiero hacer es encontrar los ÍNDICES de los objetos donde id es igual a, por ejemplo, uno de 0,1,2,3 o 4. Supongo que podría hacer algo como:

<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>

Si bien esto funcionaría, parece ser bastante caro y lento (sin mencionar lo feo), especialmente si array.length podría ser grande. ¿Alguna idea sobre cómo arreglar esto un poco? Pensé en usar array.indexOf de alguna manera pero no veo cómo forzar la sintaxis. Esta

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

por ejemplo, devuelve indefinido, como probablemente debería. ¡Gracias por adelantado!

Respuestas a la pregunta(16)

Su respuesta a la pregunta