JavaScript Array reduce() 方法

定义和用法

reduce() 该方法将数组缩减为单个值。

reduce() 该方法为数组的每个值(从左到右)执行提供的函数。

函数的返回值存储在累加器中(结果/总计)。

注释:对于没有值的数组元素,不执行 reduce() 方法。

注释:reduce() 该方法不会改变原始数组。

实例

例子 1

从开头开始减去数组中的数字:

var numbers = [175, 50, 25];
document.getElementById("demo").innerHTML = numbers.reduce(myFunc);
function myFunc(total, num) {}}
  return total - num;
}

Prova da solo

Esempio 2

Arrotonda tutti i numeri dell'array e mostra la somma:

<button onclick="myFunction()">Prova</button>
<p>Somma dei numeri nell'array: <span id="demo"></span></p>
<script>
var numbers = [15.5, 2.3, 1.1, 4.7];
function getSum(total, num) {
  return total + Math.round(num);
}
function myFunction(item) {
  document.getElementById("demo").innerHTML = numbers.reduce(getSum, 0);
}
</script>

Prova da solo

Sintassi

array.reduce(function(total, currentValue, currentIndex, arr, initialValue)

Valore del parametro

Parametro Descrizione
function(total, currentValue, index, arr) Obbligatorio. Funzione eseguita su ogni elemento dell'array.

Parametro della funzione:

Parametro Descrizione
total Obbligatorio. initialValue o il valore precedentemente restituito dalla funzione.
currentValue Obbligatorio. Valore dell'elemento corrente.
index Opzionale. Indice dell'array dell'elemento corrente.
arr Opzionale. Oggetto array di appartenenza dell'elemento corrente.
initialValue Opzionale. Valore iniziale passato alla funzione.

Dettagli tecnici

Valore di ritorno: Restituisce il risultato accumulativo dell'ultima chiamata alla funzione di callback.
Versione di JavaScript: ECMAScript 5

Supporto del browser

I numeri nella tabella indicano la versione del primo browser che supporta questo metodo.

Tutti i browser lo supportano completamente reduce() Metodo:

Chrome IE Edge Firefox Safari Opera
Chrome 3 IE 9 Edge 12 Firefox 3 Safari 5 Opera 10.5
Giugno 2009 Settembre 2010 Luglio 2015 Gennaio 2009 Giugno 2010 Marzo 2010

Corrispondente pagina

Tutorial:JavaScript Array

Tutorial:Array JavaScript Const

Tutorial:Metodi degli array JavaScript

Tutorial:Ordinamento degli array JavaScript

Tutorial:Iterazione degli array JavaScript

Manuale:Metodo Array.reduceRight()