js Array reduceRight

2019年01月07日 15:22 | 2025次浏览 作者原创 版权保护

javascript Array reduceRight()函数使用方法

定义

接受一个函数作为累加器(accumulator)和数组的每个值(从右到左)将其减少为单个值。reduceRight() 方法的功能和 reduce() 功能是一样的,不同的是 reduceRight() 从数组的末尾向前将数组中的数组项做累加。


语法

array.reduceRight(function(total, currentValue, currentIndex, arr), initialValue)


参数说明

参数描述
function(total,currentValue, index,arr)

必须,一个回调函数,用来操作数组中的每个元素

参数            描述

total          必需。初始值, 或者计算结束后的返回值。即上一次调用回调的返回值。

currentValue 必需。当前元素

currentIndex 可选。当前元素的索引

arr 可选。当前元素所属的数组对象。





initialValue可作为第一次调用回调 callback 的第一个参数


描述说明

reduceRight 为数组中每个元素调用一次 callback 回调函数,但是数组中被删除的索引或从未被赋值的索引会跳过。回调函数接受四个参数:初始值(或上次调用回调的返回值)、当前元素值、当前索引,以及调用 reduce 的数组。

可以像下面这样调用 reduceRight 的回调函数 callback:

array.reduceRight(function(previousValue, currentValue, index, array) {
    // ...});

首次调用回调函数时,previousValue 和 currentValue 可以是两个值之一。如果调用 reduceRight 时提供了 initialValue 参数,则 previousValue 等于 initialValue,currentValue 等于数组中的最后一个值。如果没有提供 initialValue 参数,则 previousValue 等于数组最后一个值, currentValue 等于数组中倒数第二个值。


如果数组为空,且没有提供 initialValue 参数,将会抛出一个 TypeError 错误。如果数组只有一个元素且没有提供 initialValue 参数,或者提供了 initialValue 参数,但是数组为空将会直接返回数组中的那一个元素或 initialValue 参数,而不会调用 callback。

该函数的完整执行过程见下例:

[0, 1, 2, 3, 4].reduceRight(function(previousValue, currentValue, index, array) {
    return previousValue + currentValue;
});

回调将会被调用四次,每次调用的参数及返回值如下:

previousValuecurrentValueindexarrayreturn value
first call433[0,1,2,3,4]7
second call722[0,1,2,3,4]9
third call911[0,1,2,3,4]10
fourth call1000[0,1,2,3,4]10

reduceRight 返回值是最后一次调用回调的返回值(10)。


实例

求一个数组中所有值的和

<script type="text/javascript">
var total = [0, 1, 2, 3].reduceRight(function(a, b) {
    return a + b;
});
// total == 6

alert(total)


</script>

运行结果

6



小说《我是全球混乱的源头》
此文章本站原创,地址 https://www.vxzsk.com/2000.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程