English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Método reduce() do Array JavaScript

 Objeto Array do JavaScript

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).

Sintaxe:

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‹/›

Compatibilidade do navegador

Os números na tabela indicam a primeira versão do navegador que suporta completamente o método reduce():

Método
reduce()é310.549

Valores dos parâmetros

ParâmetrosDescrição
callback
Função executada para cada elemento do array.
Parâmetros da função:
  • accumulator(Obrigatório)- do funçãoinitialValueou o valor retornado anteriormente

  • element(Obrigatório)-Elemento atual em processo no array

  • index(Opcional)-Índice do elemento atual em processo no array

  • array(Opcional)- Chamou o arrayreduce()

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.

Detalhes técnicos

Retorno:Reduza os valores gerados
Versão do JavaScript:ECMAScript 5

Mais exemplos

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‹/›

 Objeto Array do JavaScript