JavaScript中的reduce()方法
JavaScript中的reduce()方法是一个高阶函数,它接受一个函数作为参数,该函数会对数组中的每个元素反复调用,以生成单个的最终值。它的原型如下:
arr.reduce(callback[, initialValue])
其中,callback参数是一个函数,它接受4个参数:
- previousValue:上一次调用回调返回的值,或者是提供的初始值(initialValue)。
- currentValue:数组中当前被处理的元素。
- index:当前元素在数组中的索引。
- array:调用 reduce()的数组。
示例:求数组中所有元素的和:
var arr = [1,2,3,4,5]; var sum = arr.reduce(function(previousValue, currentValue, index, array) { return previousValue + currentValue; }); console.log(sum); // 15
如果提供了initialValue,则previousValue将会是这个值,currentValue则为数组中的第一个元素:
var arr = [1,2,3,4,5]; var sum = arr.reduce(function(previousValue, currentValue, index, array) { return previousValue + currentValue; }, 10); console.log(sum); // 25
示例:求数组中所有元素的乘积:
var arr = [1,2,3,4,5]; var product = arr.reduce(function(previousValue, currentValue, index, array) { return previousValue * currentValue; }); console.log(product); // 120
reduce()方法可以用于实现数组的拼接:
var arr = [1,2,3,4,5]; var str = arr.reduce(function(previousValue, currentValue, index, array) { return previousValue + currentValue; }, ""); console.log(str); // "12345"
reduce()方法也可以用于对象数组的操作:
var arr = [ {name: "Tom", age: 18}, {name: "Jack", age: 20}, {name: "John", age: 22} ]; var totalAge = arr.reduce(function(previousValue, currentValue, index, array) { return previousValue + currentValue.age; }, 0); console.log(totalAge); // 60
:JavaScript中的reduce()方法是一个高阶函数,它接受一个函数作为参数,可以用来对数组中的每个元素进行计算,以生成单个的最终值。