# Циклы для перебора массива
# Виды циклов
forEach
- для перебора массиваfilter
- для фильтрации массиваmap
- для трансформации массива в массивreduce / reduceRight
- для прохода по массиву с вычислением значенияevery / some
- для проверки массива
# forEach
forEach
- выполняет указанную функцию один раз для каждого элемента в массиве
const arr = ['Яблоко', 'Апельсин', 'Груша'];
arr.forEach((element, index, arr) => {
console.log(element);
console.log(index);
console.log(arr);
});
// => Яблоко | 0 | Array(3)
// => Апельсин | 1 | Array(3)
// => Груша | 2 | Array(3)
# filter
filter
- создаёт новый массив со всеми элементами, прошедшими проверку, задаваемую в передаваемой функции
// Выбор положительных элементов массива
const arr = [1, -1, 2, -2, 3];
const result = arr.filter(number => {
return number > 0;
});
console.log(result); // => [1, 2, 3]
# map
map
- создаёт новый массив с результатом вызова указанной функции для каждого элемента массива
const numbers = [1, 2, 3];
const doubles = numbers.map((num) => {
return num * 2;
});
console.log(numbers); // => [1, 2, 3]
console.log(doubles); // => [2, 4, 6]
# reduce
/ reduceRight
reduce
- применяет функцию reducer к каждому элементу массива слева-направо, возвращая одно результирующее значениеreduceRight
- применяет функцию reducer к каждому элементу массива справа-налево, возвращая одно результирующее значение
// сумма элементов массива
const arr = [1, 2, 3, 4, 5];
// для каждого элемента массива запустить функцию,
// промежуточный результат передавать первым аргументом далее
const result = arr.reduce((sum, current) => {
return sum + current;
});
console.log(result); // 15
# every
/ some
every
- проверяет, удовлетворяют ли все элементы массива условию, заданному в передаваемой функцииsome
- проверяет, удовлетворяют ли какие-нибудь элементы массива условию, заданному в передаваемой функции
const arr = [1, -1, 2, -2, 3];
function isPositive(number) {
return number > 0;
}
console.log( arr.every(isPositive) ); // false, не все положительные
console.log( arr.some(isPositive) ); // true, есть хоть одно положительное