Объяснение метода .filter()

Метод .filter полезен, когда мы хотим «отфильтровать» определенные элементы из массива, чтобы получить только те, которые необходимы.

.filter() — это метод, который перебирает массив так же, как метод .forEach. Он применяет функцию к каждому элементу и удаляет те, которые не возвращают положительные значения. Например, возьмите массив ниже, он содержит годы от 1700 до 2000.

var years[1980, 1878, 1943, 1734, 1793];

Чтобы «отфильтровать» все числа до определенного года, мы можем использовать метод .filter. Для этого нам нужно указать, какой массив мы хотим перебрать, и применить к нему метод .filter следующим образом:

years.filter()

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

years.filter(function(year) {
}):

Теперь мы должны указать через функцию, какие элементы следует оставить, а какие удалить. В этом примере мы сохраним все элементы между 1800 и 2000 годами. Для этого мы будем использовать простой оператор if.

years.filter(function(year) {
if(year > 1800);
return true
}); 
// output: [1980, 1878, 1943];

Когда скринридер пройдет через years.filter(), он вернет все элементы, которые старше 1800 года. Функция распечатает только те годы, для которых они оцениваются как истинные после прохождения оператора «если». В противном случае они удаляются. Имейте в виду, что возвращаемые результаты компилируются в совершенно новый массив.

Чтобы упростить это, мы могли бы изменить синтаксис, создав стрелочную функцию, удалив оператор if и изменив операторы функции.

years.filter((year) => {year > 1800});
// output: [1980, 1878, 1943];

Функция, содержащаяся внутри метода фильтра, будет точно так же оценена как истинная.