Trochę surfowałem po okolicy, próbując znaleźć skuteczny sposób, aby to zrobić, ale do niczego nie doszedłem. Mam tablicę obiektów, która wygląda następująco:
array[i].id = some number;
array[i].name = some name;
To, co chcę zrobić, to znaleźć INDEKSY obiektów, w których id jest równe, na przykład, jednemu z 0, 1, 2, 3 lub 4. Przypuszczam, że mógłbym zrobić coś takiego:
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 }
}
Chociaż to by zadziałało, wygląda na dość drogie i wolne (nie wspominając o brzydkim), zwłaszcza jeśli array.length może być duża. Jakieś pomysły, jak to trochę urozmaicić? Myślałem o użyciu w jakiś sposób array.indexOf, ale nie wiem, jak wymusić składnię. To
array.indexOf(this.id === 0);
na przykład zwraca undefined, tak jak prawdopodobnie powinno. Z góry dziękuję!
Array.prototype.findIndex()
w ECMAScript 2015. Zaakceptowana odpowiedź była jednak niesamowita.