JavaScript reduce() 方法

Array 對象參考手冊 JavaScript Array 對象

實例

計算數組元素相加後的總和:

var numbers = [65, 44, 12, 4]; function getSum(total, num) { return total + num; } function myFunction(item) { document.getElementById("demo").innerHTML = numbers.reduce(getSum); }

輸出結果:

125


定義和用法

reduce() 方法接收一個函數作為累加器,數組中的每個值(從左到右)開始縮減,最終計算為一個值。

reduce() 可以作為一個高階函數,用於函數的 compose。

注意: reduce() 對於空數組是不會執行回調函數的。


流覽器支持

表格中的數字表示支持該方法的第一個流覽器版本號。

方法
reduce() Yes 9.0 3.0 4 10.5

語法

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

參數

參數 描述
function(total,currentValue, index,arr) 必需。用於執行每個數組元素的函數。
函數參數:
參數 描述
total 必需。初始值, 或者計算結束後的返回值。
currentValue 必需。當前元素
currentIndex 可選。當前元素的索引
arr 可選。當前元素所屬的數組對象。
initialValue 可選。傳遞給函數的初始值

技術細節

返回值: 返回計算結果
JavaScript 版本: ECMAScript 3

更多實例

實例

四捨五入後計算數組元素的總和:

<button onclick="myFunction()">點我</button> <p>數組元素之和: <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 對象參考手冊 JavaScript Array 對象