Telegram: @piratestories | Гайд | Книги | Статьи, доклады, ресурсы |
В JavaScript, как и во многих других языках, есть много встроенных методов, выполняющих итерацию. Эти методы обрабатывают весь список по одному элементу за раз. Когда вы вызываете их, вы предоставляете функцию обратного вызова (callback) — функцию, расчитывающую работать с одним элементом за один раз. В завимимости от используемого метода Array, функция обратного вызова получает аргументы и, как ожидается, возвращает значение (за исключением forEach), которое определяет окончательное возвращаемое значение операции обхода массива. Ниже перечислены и кратко описаны методы, наиболее необходимые в повседневной работе.
Функция обратного вызова отвечает: вот элемент, сделай с ним что-нибудь сумасшедшее, мне все равно что Функция обратного вызова принимает следующие аргументы: item, index, list Итоговое возвращаемое значение: ничего — другими словами, undefined Пример использования: [1, 2, 3].forEach(function (item, index) { console.log(item, index); });
Функция обратного вызова отвечает: вот элемент, что я должна поместить в новый список на его месте? Функция обратного вызова принимает следующие аргументы: item, index, list Итоговое возвращаемое значение: список с новыми элементами Пример использования: const three = [1, 2, 3]; const doubled = three.map(function (item) { return item * 2; }); console.log(three === doubled, doubled); // false, [2, 4, 6]
Функция обратного вызова - предикат — должна возвращать истинное или ложное значение Функция обратного вызова отвечает: должна ли я сохранить этот элемент? Функция обратного вызова принимает следующие аргументы: item, index, list Итоговое возвращаемое значение: список сохраненных элементов Пример использования: const ints = [1, 2, 3]; const evens = ints.filter(function (item) { return item % 2 === 0; }); console.log(ints === evens, evens); // false, [2]
Функция обратного вызова отвечает: вот результат последней итерации, что я должна отправить в следующую итерацию? Функция обратного вызова принимает следующие аргументы: result, item, index, list Итоговое возвращаемое значение: результат последней итерации Пример использования: Примечание: reduce и reduceRight принимают опциональный аргумент initialValue после функции обратного вызова. Если его пропустить, то по умолчанию он использует первый элемент. const sum = [1, 2, 3].reduce(function (result, item) { return result + item; }, 0); Если пропустить 0, 1 будет первым result, а 2 будет первым item
Тоже самое, что и reduce, но в обратном порядке: от последнего к первому. Еще есть методы some, every, find, findIndex. Про них можно почитать, перейдя по ссылке ниже. Источник — github.com/devSchacht