Существует так много способов перебора массива, таких как forEach, цикл for и цикл while, которые используют большинство разработчиков JavaScript.

Но методы map(), filter() и reduce() очень просты в использовании и помогают нам избежать большого количества строк кода. Все эти методы используются для перебора массивов и возвращают нам новый массив. Давайте разберемся, как использовать эти функции.

карта()

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

let arr = [1, 2, 3, 4];
console.log(arr.map(function(value, index, array){
return value * 2;
},[this.args]))
//using arrow function
console.log(arr.map(value => value * 2));

фильтр()

Этот метод используется для фильтрации массива, он будет перебирать каждое значение массива. Он проверяет определенное условие, которое мы хотим проверить для значений массива. Если условие приемлемо, оно возвращает эти значения из массива.

Он вернет новый массив без внесения каких-либо изменений в существующий массив.

let arr = ['human', 'human', 'human', 'animal', 'animal','animal'];
console.log(arr.filter(function(value, index, array){
if(value== 'human'){
return value;
}
},[this.args]))
//using arrow function
console.log(arr.filter(value => value == 'human'));

уменьшить()

Что, если мы хотим перебрать массив и получить одно значение из этого массива. Он сводит несколько значений к одному значению и накапливает результат. Он принимает начальное значение, с которого мы хотим начать, и накапливает результат в этом значении, которое мы называем аккумулятором.
Аккумулятор может быть объектом, массивом или числом.

let arr = ['human', 'human', 'human', 'animal', 'animal','animal'];
arr.reduce(function(result, value){
if(value == 'human'){
result = result + 1;
}
return result;
},0)
//using arrow function
console.log(arr.reduce((result, value) =>{ if(value == 'human'){
result = result + 1;
}
return result;
},0));