Я займався серфінгом трохи, намагаючись знайти ефективний спосіб зробити це, але ніде не потрапив. У мене є масив об'єктів, який виглядає приблизно так:
array[i].id = some number;
array[i].name = some name;
Що я хочу зробити, це знайти індекси об’єктів, де id дорівнює, наприклад, одному 0,1,2,3 або 4. Я вважаю, що я міг би зробити щось на кшталт:
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 }
}
Хоча це працює, це виглядає досить дорого і повільно (не кажучи вже про некрасиво), особливо якщо array.length може бути великим. Будь-які ідеї про те, як трохи підростити це? Я думав якось використовувати array.indexOf, але не бачу, як змусити синтаксис. Це
array.indexOf(this.id === 0);
наприклад, повертається невизначено, як це, мабуть, повинно. Спасибі заздалегідь!
Array.prototype.findIndex()
в ECMAScript 2015. Прийнята відповідь була приголомшливою.