JavaScript 的 数组 对象内置了 reduceRight 方法的功能和 reduce 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。
reduceRight() 方法接收一个 函数 作为累加器,将数组中的每个值(从右到左)开始缩减,最终计算为一个值。
array.reduceRight(function(total, currentValue, currentIndex, arr), initialValue);
参数 | 描述 |
---|---|
function(total,currentValue, index,arr) | 必须。数组每个元素需要执行的函数。 |
initialValue | 可选。传递给函数的初始值 |
参数 | 描述 |
---|---|
total | 必需。初始值, 或者计算结束后的返回值。 |
currentValue | 必需。当前元素 |
index | 可选。当前元素的索引 |
arr | 可选。当前元素所属的数组对象 |
返回 计算结果。
reduceRight() 可以作为一个高阶函数,用于函数的 compose。reduceRight() 对于空数组是不会执行回调函数的。
该函数只支持 ECMAScript 3 即以上版本。
使用 reduceRight 循环遍历数组的每一个元素
<!DOCTYPE html>
<html>
<head>
<title>JavaScript reduceRight循环遍历数组的每一个元素</title>
<script type="text/javascript">
console.log("嗨客网(www.haicoder.net)");
var arr = new Array(1, 4, 9, 16, 25, 36);
console.log("Arr =", arr);
var result = arr.reduceRight((a, b)=>a + b);
console.log("Result =", result);
</script>
</head>
</html>
程序运行后,控制台输出如下:
我们使用 reduceRight 函数,实现了求数组中所有元素的和。
使用 reduceRight 循环遍历数组的每一个元素
<!DOCTYPE html>
<html>
<head>
<title>JavaScript reduceRight循环遍历数组的每一个元素</title>
<script type="text/javascript">
console.log("嗨客网(www.haicoder.net)");
var arr = new Array(1, 4, 9, 16, 25, 36);
console.log("Arr =", arr);
function walk(previousValue, currentValue, index, array){
return previousValue * currentValue;
};
var result = arr.reduceRight(walk);
console.log("Result =", result);
</script>
</head>
</html>
程序运行后,控制台输出如下:
我们使用 reduceRight 函数,实现了求数组中所有元素的乘积。
JavaScript 的数组对象内置了 reduceRight 方法用于接收一个函数作为累加器,将数组中的每个值(从右到左)开始缩减,最终计算为一个值。JavaScript 数组 reduceRight 语法:
array.reduceRight(function(total, currentValue, currentIndex, arr), initialValue);