Страницы

Поиск по вопросам

среда, 21 ноября 2018 г.

Выбор индекса объекта в коллекции

Каким образом эффективнее всего найти индекс объекта коллекции, который имеет указанное свойство. Например, нужно найти индекс объекта коллекции, который имеет свойство id равное 123. Сейчас при помощи Underscore делаю так:
_.indexOf(collection, _.findWhere(collection, {id: 123}));
Подскажите, пожалуйста, более красивый и эффективный способ, если таковой имеется.


Ответ

Как в Underscore, так и в Lodash есть метод _.findIndex, который собственно объединяет функционал _.index и _.findWhere и возвращает индекс элемента коллекции по условию:
var collection = [{id: 321}, {id: 123}, {id: 333}];
_.findIndex(collection, {id: 123}); // 1
В дополнение есть метод findLastIndex, который ищет с конца коллекции (в Underscore и Lodash).
Обновление:
В Underscore эти методы появились только с версии 1.8 (в Lodash - с 1.1.0)

Комментариев нет:

Отправить комментарий