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 själv

Exempel 2

Runda av alla tal i arrayen och visa summan:

<button onclick="myFunction()">Prova</button>
<p>Summa av tal i 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 själv

Syntax

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

Parametervärden

Parameter Beskrivning
function(total, currentValue, index, arr) Obligatorisk. Funktionen som körs för varje element i arrayen.

Funktionens parametrar:

Parameter Beskrivning
total Obligatorisk. initialValue eller det värde som funktionen tidigare returnerade.
currentValue Obligatorisk. Värdet för det aktuella elementet.
index Valfritt. Index för det aktuella elementet i arrayen.
arr Valfritt. Den aktuella elementets arrayobjekt.
initialValue Valfritt. Värdet som skickas som initialvärde till funktionen.

Tekniska detaljer

Returvärde: Returnerar det akkumulerade resultatet från den senaste anropet av callback-funktionen.
JavaScript-version: ECMAScript 5

Webbläsarstöd

Tal i tabellen anger den första webbläsarversion som helt stöder denna metod.

Alla webbläsare stöder detta helt. reduce() Metod:

Chrome IE Edge Firefox Safari Opera
Chrome 3 IE 9 Edge 12 Firefox 3 Safari 5 Opera 10.5
2009 år 6 2010 år 9 2015 år 7 2009 år 1 2010 år 6 2010 år 3

Relaterade sidor

Lär dig:JavaScript Array

Lär dig:JavaScript-array Const

Lär dig:JavaScript-arraymetoder

Lär dig:JavaScript-sortera array

Lär dig:JavaScript-arrayiteration

Handbok:Array.reduceRight() metoden