reduce()是JavaScript中的一个高阶函数,它可以将一个数组的所有元素通过指定的计算方法进行汇总,并生成一个新的计算结果。
我们可以使用reduce()方法来进行一些常见的操作,例如计算数组中所有元素的累加和、计算最大值或最小值等等。
reduce()方法的语法格式如下:
arr.reduce(callback,[initialValue])
其中callback是对数组中的每一个元素进行处理的回调函数,而initialValue是第一次调用callback函数时的初始值。如果不传入该参数,那么将会使用数组的第一个元素作为初始值。
下面是一个求和的示例:
var arr = [1, 2, 3, 4, 5];var sum = arr.reduce(function(prev, curr, index, array) { return prev curr;});console.log(sum); // 15
在上面的例子中,prev表示之前所有元素的累加和,curr表示当前被处理的数组元素。
除了数组的元素之外,reduce()方法还可以处理对象类型的数据。例如下面的例子:
var votes = [ {name:'张三', count:50}, {name:'李四', count:30}, {name:'王五', count:40}];var totalVotes = votes.reduce(function(prev, curr, index, array) { return prev curr.count;}, 0);console.log(totalVotes); // 120
在上面的例子中,我们使用reduce()方法计算了一个包含投票者信息的数组中的所有选票的总数。
除此之外,reduce()方法还可以用来去重:
var arr = [1, 2, 3, 4, 4, 2, 5];var newArr = arr.reduce(function(prev, curr, index, array) { if (prev.indexOf(curr) === -1) { prev.push(curr); } return prev;}, []);console.log(newArr); // [1, 2, 3, 4, 5]
在上面的例子中,我们使用reduce()方法将重复的元素去掉。
通过使用reduce()方法,我们可以简化JavaScript代码,使其更加高效、简洁。