Фильтрация массива

Метод filter(<Функция>[, <this>]) позволяет выполнить фильтрацию массива. В первом параметре указывается ссылка на функцию, которая будет вызвана для каждого элемента массива. Функция принимает три параметра. Через первый параметр доступно значение текущего элемента, через второй — его индекс, а через третий — ссылка на массив. Функция должна вернуть значение true, если элемент соответствует условию, и false — в противном случае. Значение, указанное во втором параметре, будет доступно внутри функции через указатель this. Метод возвращает массив элементов, соответствующих условию (для которых функция вернула значение true). Исходный массив не изменяется. Пример:

function test(value, index, ar) {
   return value < 4;
}
let arr = [ 1, 2, 3, 4, 5, 6 ];
let arr2 = arr.filter(test);
console.log(arr2);                  // [ 1, 2, 3 ]

С помощью метода map(<Функция>[, <this>]) можно применить пользовательскую функцию ко всем элементам массива. Внутри функции нужно вернуть новое значение элемента. Метод map() возвращает отфильтрованный массив. Пример умножения всех элементов массива на 2:

let arr = [ 1, 2, 3, 4, 5, 6 ];
let arr2 = arr.map( function(value, index, ar) {
   return value * 2;
});
console.log(arr2);              // [ 2, 4, 6, 8, 10, 12 ]

Метод reduce(<Функция>[, <Начальное значение>]) применяет функцию к парам элементов и накапливает результат. В первом параметре указывается ссылка на функцию, которая будет вызвана для каждого элемента массива. Функция принимает четыре параметра. Через первый параметр доступен результат предыдущих вычислений или <Начальное значение> при первом вызове, через второй — значение текущего элемента, через третий — его индекс, а через четвертый — ссылка на массив. Внутри функции нужно вернуть результат текущих вычислений. Метод reduce() возвращает общий результат вычислений. Пример получения суммы всех элементов массива:

let arr = [ 1, 2, 3 ];
let sum = arr.reduce( function(value1, value2, index, ar) {
   return value1 + value2;
}, 0);
console.log(sum);              // 6

Метод reduceRight() аналогичен методу reduce(), но перебирает элементы не слева направо, а справа налево. Пример преобразования многомерного массива в одномерный:

let arr = [ [1, 2], [3, 4] ];
let sum = arr.reduceRight( function(arr1, arr2, index, ar) {
   return arr1.concat(arr2);
}, []);
console.log(sum);              // [ 3, 4, 1, 2 ]

Учебник по Node.js и JavaScript
Учебник по JavaScript (Node.js) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов