Ich habe ein wenig herumgesurft, um einen effizienten Weg zu finden, bin aber nirgendwo hingekommen. Ich habe eine Reihe von Objekten, die so aussehen:
array[i].id = some number;
array[i].name = some name;
Was ich tun möchte, ist, die INDEXE der Objekte zu finden, bei denen id beispielsweise einem von 0,1,2,3 oder 4 entspricht. Ich nehme an, ich könnte einfach so etwas tun:
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 }
}
Dies würde zwar funktionieren, scheint aber ziemlich teuer und langsam zu sein (ganz zu schweigen von hässlich), insbesondere wenn array.length groß sein könnte. Irgendwelche Ideen, wie man das ein bisschen aufpeppen kann? Ich dachte daran, array.indexOf irgendwie zu verwenden, aber ich sehe nicht, wie ich die Syntax erzwingen soll. Dies
array.indexOf(this.id === 0);
Gibt beispielsweise undefiniert zurück, wie es wahrscheinlich sollte. Danke im Voraus!
Array.prototype.findIndex()
in ECMAScript 2015. Die akzeptierte Antwort war großartig.