J'ai surfé un peu partout pour essayer de trouver un moyen efficace de le faire, mais je n'ai abouti à rien. J'ai un tableau d'objets qui ressemble à ceci:
array[i].id = some number;
array[i].name = some name;
Ce que je veux faire est de trouver les INDEXES des objets où id est égal, par exemple, à 0,1,2,3 ou 4. Je suppose que je pourrais simplement faire quelque chose comme:
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 }
}
Bien que cela fonctionne, cela semble être assez cher et lent (pour ne pas dire moche), surtout si array.length peut être volumineux. Des idées pour embellir un peu cela? J'ai pensé à utiliser array.indexOf d'une manière ou d'une autre, mais je ne vois pas comment forcer la syntaxe. Ce
array.indexOf(this.id === 0);
par exemple, renvoie undefined, comme il se doit. Merci d'avance!
Array.prototype.findIndex()
dans ECMAScript 2015. La réponse acceptée était géniale.