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()方法是一个高阶函数,它接受一个函数作为参数,可以用来对数组中的每个元素进行计算,以生成单个的最终值。