目录

JavaScript Array reduce()

示例

减去数组中的所有数字:

const numbers = [175, 50, 25];

document.getElementById("demo").innerHTML = numbers.reduce(myFunc);

function myFunc(total, num) {
  return total - num;
}
亲自试一试 »

对所有数字进行四舍五入并显示总和:

const numbers = [15.5, 2.3, 1.1, 4.7];
document.getElementById("demo").innerHTML = numbers.reduce(getSum, 0);

function getSum(total, num) {
  return total + Math.round(num);
}
亲自试一试 »

描述

这个reduce()方法对数组元素执行一个reducer函数。

这个reduce()方法返回单个值:函数的累积结果。

这个reduce()方法不会对空数组元素执行该函数。

这个reduce()方法不会改变原始数组。

笔记

在第一个回调中,前一个回调没有返回值。

一般情况下,以数组元素0为初始值,从数组元素1开始迭代。

如果提供了初始值,则使用该初始值,并且迭代从数组元素 0 开始。

也可以看看:

数组的reduceRight()方法


语法

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

参数

Parameter Description
function() Required.
A function to be run for each element in the array.
Reducer function parameters:
total Required.
The initialValue, or the previously returned value of the function.
currentValue Required.
The value of the current element.
currentIndex Optional.
The index of the current element.
arr Optional.
The array the current element belongs to.
initialValue Optional.
A value to be passed to the function as the initial value.

返回值

上次调用回调函数的累积结果。


浏览器支持

reduce()是 ECMAScript5 (ES5) 功能。

所有浏览器完全支持 ES5 (JavaScript 2009):

Chrome Edge Firefox Safari Opera IE
Yes Yes Yes Yes Yes 9-11