Ho navigato un po 'cercando di trovare un modo efficiente per farlo, ma non sono arrivato da nessuna parte. Ho una serie di oggetti che assomiglia a questo:
array[i].id = some number;
array[i].name = some name;
Quello che voglio fare è trovare gli INDICI degli oggetti in cui id è uguale, ad esempio, a 0,1,2,3 o 4. Suppongo che potrei semplicemente fare qualcosa del tipo:
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 }
}
Mentre questo funzionerebbe, sembra essere piuttosto costoso e lento (per non parlare dei brutti), specialmente se array.length potrebbe essere grande. Qualche idea su come abbellirlo un po '? Ho pensato di usare array.index In qualche modo, ma non vedo come forzare la sintassi. Questo
array.indexOf(this.id === 0);
ad esempio, restituisce undefined, come probabilmente dovrebbe. Grazie in anticipo!
Array.prototype.findIndex()
in ECMAScript 2015. La risposta accettata è stata comunque fantastica.