reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce() 可以作为一个高阶函数,用于函数的 compose。
注意: reduce() 对于空数组是不会执行回调函数的。
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
第一个参数function是必需的。
function的参数:
- total是必需的。初始值,或者计算结束后返回的值。
- currentValue是必需的。当前元素。
- currentIndex是可选的。当前元素的索引。
- arr是可选的。当前元素所属的数组对象。
第二个参数initialValue是可选的,是传递给函数的初始值。
<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>