English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
reduce()Метод принимает функцию в качестве аккумулятора, начинает сокращение с каждого значения массива (слева направо) и в конечном итоге вычисляет один значений.
reduce()Метод выполняет回调 функцию для каждого индекса массива.
Возвратное значение функции хранится в аккумуляторе (result).
array.reduce(callback, initialValue)
var nums = [10, 20, 30, 40, 50]; var sum = nums.reduce(getTotal); function getTotal(x, y) { return (x + y); }Проверьте тест <›/›
Числа в таблице указывают на первую версию браузера, которая полностью поддерживает метод reduce():
Метод | |||||
reduce() | Да | 3 | 10.5 | 4 | 9 |
Параметры | Описание |
---|---|
callback | Функция, выполняемая для каждого элемента массива. Параметры функции:
|
initialValue | (по умолчанию) Значение, используемое в качестве первого параметра回调 при первом вызове. Если не предоставлено начальное значение, будет использоваться первый элемент массива. |
Возвратное значение: | Уменьшение созданных значений |
---|---|
Версия JavaScript: | ECMAScript 5 |
Этот пример удаляет дубликаты из массива:
var nums = [10, 20, 10, 20, 13, 5, 4, 5, 13, 4, 4, 4, 4]; let result = nums.sort().reduce((accumulator, current) => { const length = accumulator.length; if (length === 0 || accumulator[length - 1] !== current) { accumulator.push(current); } return accumulator; }, []); function myFunc() { document.getElementById("result").innerHTML = result; }Проверьте тест <›/›
Разница между reduce() и reduceRight():
var arr = ['1', '2', '3', '4', '5']; function funcReduce() { var val = arr.reduce(function(x, y) { return x + y; }); document.getElementById("result").innerHTML = val; } function funcReduceRight() { var val = arr.reduceRight(function(x, y) { return x + y; }); document.getElementById("result").innerHTML = val; }Проверьте тест <›/›