Каким образом эффективнее всего найти индекс объекта коллекции, который имеет указанное свойство. Например, нужно найти индекс объекта коллекции, который имеет свойство 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)
Комментариев нет:
Отправить комментарий