English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
reduce()O método recebe uma função como acumulador, começa a reduzir cada valor do array (de esquerda para direita) e finalmente calcula um valor.
reduce()O método executa a função de chamada de volta uma vez para cada índice do array.
O valor de retorno da função é armazenado no acumulador (result).
array.reduce(callback, initialValue)
var nums = [10, 20, 30, 40, 50]; var sum = nums.reduce(getTotal); function getTotal(x, y) { return (x + y); }Teste e veja‹/›
Os números na tabela indicam a primeira versão do navegador que suporta completamente o método reduce():
Método | |||||
reduce() | é | 3 | 10.5 | 4 | 9 |
Parâmetros | Descrição |
---|---|
callback | Função executada para cada elemento do array. Parâmetros da função:
|
initialValue | (Opcional) Valor usado como primeiro parâmetro da chamada de volta na primeira chamada. Se não for fornecido um valor inicial, será usado o primeiro elemento do array. |
Retorno: | Reduza os valores gerados |
---|---|
Versão do JavaScript: | ECMAScript 5 |
Este exemplo remove itens duplicados do array:
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; }Teste e veja‹/›
Diferença entre reduce() e 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; }Teste e veja‹/›