АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
105 of 264 menu
Бесплатный курс по выкладке сайтов на хостинг. Разбираем все нюансы! Начало 14 октября. Жми для записи!

Метод filter

Метод filter позволяется отфильтровать элементы массива, оставив только подходящие под определенное условие элементы. Метод в параметре получает функцию, которая выполнится для каждого элемента массива. Своим результатом метод возвращает новый массив, в который войдут только те элементы, для которых переданная функции вернет true.

В функцию можно передавать три параметра. Если эти параметры есть (они не обязательны), то в первый автоматически попадет элемент массива, во второй попадет его номер в массиве (индекс), а в третий - сам массив.

Синтаксис

let новый массив = массив.filter(function(элемент, индекс, массив) { код return true или false });

Пример

Давайте отфильтруем массив, оставив в нем только положительные числа:

let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1]; let res = arr.filter(function(elem) { if (elem >= 0) { return true; } else { return false; } }); console.log(res);

Результат выполнения кода:

[5, 1, 1, 3, 4]

Пример

Сократим код, воспользовавшись стрелочной функцией:

let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1]; let res = arr.filter(elem => { if (elem >= 0) { return true; } else { return false; } }); console.log(res);

Результат выполнения кода:

[5, 1, 1, 3, 4]

Пример

Сократим код, воспользовавшись сокращением логических операций:

let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1]; let res = arr.filter(elem => { return elem >= 0; }); console.log(res);

Результат выполнения кода:

[5, 1, 1, 3, 4]

Пример

Сократим код, воспользовавшись особенностями стрелочных функций:

let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1]; let res = arr.filter(elem => elem > 0); console.log(res);

Результат выполнения кода:

[5, 1, 1, 3, 4]

Пример

При необходимости в третий параметр можно передать сам массив:

let res = arr.filter(function(elem, index, arr) { тут будет доступен массив arr });

Смотрите также

  • методы map и forEach,
    которые позволяют применить функцию к каждому элементу массива
  • методы some и every,
    выполняющие проверку массива
  • методы reduce и reduceRight,
    сворачивающие массив к одному значению
byenru