Метод filter - фильтрация элементов массива на JavaScript

Метод 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,
    сворачивающие массив к одному значению



Чат с GPT Компилятор