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

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

Сегодня рассмотрим противоположность методу filter, а именно метод reject.

_.reject(list, iterator, [context])

Возвращает массив, содержащий все значения list, за исключением элементов, для которых функция iterator вернула значение, отличное от true. Т.е. reject является «антонимом» filter.

// вернет [1, 3, 5]
var odds = _.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; });

Теперь можем написать и другие фильтры для нашего массива.

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(_.reject(values, greaterThanThree)); // [1, 3, 2]
console.log(_.reject(values, lessThanSix)); // [8, 6, 7, 9, 10]

И по традиции пример работы с ассоциативным массивом. Оставляем все фильмы, бюджет которых был меньше $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 }
];

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

console.log(_.reject(movies, filterByPrice));

/*
0: Object
    budget: 6000000
    director: "Фрэнсис Форд Коппола"
    title: "Крёстный отец"
    year: "1972"
1: Object
    budget: 13000000
    director: "Фрэнсис Форд Коппола"
    title: "Крёстный отец 2"
    year: "1974"
2: Object
    budget: 8000000
    director: "Квентин Тарантино"
    title: "Криминальное чтиво"
    year: "1994"
*/

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


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

или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете
  • 1 Апреля 2014 22:58
    rubyx
    budget
    на что нибудь другое тоже можно менять, например
    like
    ? По моему этим мало кто интересуется, так как скрипт годный больше всего для киношных сайтов-торрентов :) Всё таки его можно изменить под себя?
^ Наверх ^