JS知识图谱

JavaScript 完全知识体系

Array.prototype.reduceRight

Array.prototype.reduceRight() 方法接收一个函数作为累加器和数组的每个值(从右到左)将其减少为单个值。

语法

arr.reduceRight(callback[, initialValue])
实例方法参数说明类型
callback回调函数,用于遍历数组成员时执行function
initialValue(可选)累加器初始值,用作第一个调用回调函数的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用将报错。any
回调函数参数说明类型
acc累加器累加回调的返回值,它是上一次调用回调时返回的累积值,或 initialValuenumber
value数组中正在处理的数组成员any
index数组中正在处理的当前成员的索引number
arr调用函数的数组array

返回值: 函数累计处理的结果。

示例

数组求和

const total = [0, 1, 2, 3].reduceRight(function(a, b) {
return a + b;
});
console.log(total); // 6

二维数组扁平化

const flattened = [[0, 1], [2, 3], [4, 5]].reduceRight(function(a, b) {
return a.concat(b);
}, []);
console.log(flattend); // [4, 5, 2, 3, 0, 1]

reduce 和 reduceRight 区别

const a = ['1', '2', '3', '4', '5'];
const left = a.reduce((prev, cur) => {
return prev + cur;
});
const right = a.reduceRight((prev, cur) => {
return prev + cur;
});
console.log(left);
// "12345"
console.log(right);
// "54321"