He estado navegando un poco tratando de encontrar una manera eficiente de hacer esto, pero no he llegado a ninguna parte. Tengo una serie de objetos que se ve así:
array[i].id = some number;
array[i].name = some name;
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:
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 }
}
Si bien esto funcionaría, parece ser bastante costoso y lento (sin mencionar que es 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
array.indexOf(this.id === 0);
por ejemplo, devuelve indefinido, como probablemente debería. ¡Gracias por adelantado!
Array.prototype.findIndex()
en ECMAScript 2015. La respuesta aceptada fue impresionante.