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

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

В этом уроке рассмотрим как можем осуществлять фильтрацию данных в Underscrore.js.

Синтаксис:

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

Данный метод проходит по каждому значению в list, возвращая массив из значений, для которых iterator вернул true.

Простой пример:

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

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

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

И по традиции пример работы с ассоциативным массивом. Оставляем все фильмы, бюджет которых был больше $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(_.filter(movies, filterByPrice));
/*
	0: Object
		budget: 185000000
		director: "Кристофер Нолан"
		title: "Тёмный рыцарь"
		year: "2008"

	1: Object
		budget: 25000000
		director: "Фрэнк Дарабонт"
		title: "Побег из Шоушенка"
		year: "1994"
*/

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


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

или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете
  • 1 Марта 2014 02:54
    СиротА
    А как-же уроки по angularjs?
    • 1 Марта 2014 23:23
      stas.protasevich
      И по angularjs всё продолжится в скором времени
    • 2 Марта 2014 09:49
      Flex27
      ништяк
^ Наверх ^