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;
}

親自試一試

例子 2

四舍五入數組中的所有數字,并顯示總和:

<button onclick="myFunction()">Try it</button>
<p>Sum of numbers in 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>

親自試一試

語法

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

參數值

參數 描述
function(total, currentValue, index, arr) 必需。為數組中的每個元素運行的函數。

函數參數:

參數 描述
total 必需。initialValue,或函數先前返回的值。
currentValue 必需。當前元素的值。
index 可選。當前元素的數組索引。
arr 可選。當前元素所屬的數組對象
initialValue 可選。作為初始值傳遞給函數的值。

技術細節

返回值: 返回上次調用回調函數的累積結果。
JavaScript 版本: ECMAScript 5

瀏覽器支持

表格中的數字注明了完全支持該方法的首個瀏覽器版本。

所有瀏覽器都完全支持 reduce() 方法:

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

相關頁面

教程:JavaScript 數組

教程:JavaScript 數組 Const

教程:JavaScript 數組方法

教程:JavaScript 排序數組

教程:JavaScript 數組迭代

手冊:Array.reduceRight() 方法