Этот урок связан с проектом Разбираем Underscore.js по косточкам

Разбираем Underscore.js по косточкам. Метод find

В этой статье мы продолжим изучение Underscrore.js, а именно разберём метод find.

Синтаксис:

_.find(list, iterator, [context])
  • list - объект,
  • iteratir - метод-итератор по элементам объекта;
  • context: контекстный объект.

Вызывает для каждого элемента list, функцию сравнения iterator, В результате функция, возвращаетcя первый элемент, для которого iterator вернула true. Выполнение функции при этом прерывается, т.е. вызовов iterator для оставшейся части list, вызываться не будет.

Простой пример, ищем первое чётное число:

var even = _.find([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); // 2

Подобным образом можем искать значение и по другим критериям. Главное чтобы функция-обработчик возвращала true или false.

var values = [1, 8, 6, 3, 4, 2, 5, 7, 9, 10];

// ищем первое значение, которое больше трёх
greaterThanThree = function(value) {
    return value > 3;
}

lessThanSix = function(value) {
    return value < 6;
}

console.log(_.find(values, greaterThanThree)); // 8
console.log(_.find(values, lessThanSix)); // 1

Давайте рассмотрим пример, когда мы ищем первый фильм, бюджет которого был больше $20.000.000:

var movies = [
    { title: 'Крёстный отец', director: 'Фрэнсис Форд Коппола', year: '1972', budget: 6000000 },
    { title: 'Крёстный отец 2', director: 'Фрэнсис Форд Коппола', year: '1974', budget: 13000000 },
    { title: 'Тёмный рыцарь', director: 'Кристофер Нолан', year: '2008', budget: 185000000 },
    { title: 'Побег из Шоушенка', director: 'Фрэнк Дарабонт', year: '1994', budget: 25000000 },
    { title: 'Криминальное чтиво', director: 'Квентин Тарантино', year: '1994', budget: 8000000 }
];

findByPrice = function(value) {
    return value.budget > 20000000;
}

console.log(_.find(movies, findByPrice));
// Object {title: "Тёмный рыцарь", director: "Кристофер Нолан", year: "2008", budget: 185000000}

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.ruseller.com
Автор: Станислав Протасевич
Урок создан: 28 Февраля 2014
Просмотров: 5572
Правила перепечатки


5 последних уроков рубрики "Разное"

^ Наверх ^