Метод filter позволяется отфильтровать элементы массива.

Метод в параметре получает функцию, которая выполнится для каждого элемента массива. В эту функцию можно передавать 3 параметра.

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

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

См. также forEach, map, some, every, reduce, reduceRight.

Синтаксис

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

Примеры

Пример

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

var numbers = [-2, 5, 1, -5, -1, 1, 3, 4, -1];

var filterArr = numbers.filter(function(elem) {
	if (elem >= 0) {
		return true;
	} else {
		return false;
	}
});

console.log(filterArr);

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

[5, 1, 1, 3, 4]

Пример

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

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