JavaScript – Array reduceRight()方法

JavaScript – Array reduceRight()方法

描述

Javascript数组 reduceRight() 方法是将函数同时应用于从右到左的数组中的两个值,从而将其减少为单一值。

语法

语法格式如下−

array.reduceRight(callback[, initialValue]);

参数详解

  • callback − 在数组中的每个值上执行的函数。

  • initialValue − 用作回调的第一个参数的对象。

返回值

返回数组的减少右侧单一值。

兼容性

此方法是ECMA-262标准的JavaScript扩展,因此可能不在标准的其他实现中存在。要使它工作,您需要在脚本顶部添加以下代码。

if (!Array.prototype.reduceRight) {
    Array.prototype.reduceRight = function(fun /*, initial*/) {
    var len = this.length;
    if (typeof fun != "function")
    throw new TypeError();

    //如果没有初始值,空数组没有值返回
    if (len == 0 && arguments.length == 1)
    throw new TypeError();
    var i = len - 1;

    if (arguments.length >= 2) {
    var rv = arguments[1];
    } else {
    do {
    if (i in this) {
    rv = this[i--];
    break;
    }

    //如果数组不包含值,则没有初始值返回
    if (--i < 0)
    throw new TypeError();
    }
    while (true);
    }
    for (; i >= 0; i--) {
    if (i in this)
    rv = fun.call(null, rv, this[i], i, this);
    }
    return rv;
    };
}

示例

尝试以下示例。

<html>
<head>
    <title>JavaScript Array reduceRight Method</title>
</head>

<body>   
    <script type = "text/javascript">
    if (!Array.prototype.reduceRight) {
        Array.prototype.reduceRight = function(fun /*, initial*/) {
        var len = this.length;

        if (typeof fun != "function")
        throw new TypeError();

        //如果没有初始值,空数组没有值返回
        if (len == 0 && arguments.length == 1)
        throw new TypeError();
        var i = len - 1;

        if (arguments.length >= 2) {
            var rv = arguments[1];
        } else {
            do {
                if (i in this) {
                rv = this[i--];
                break;
                }

                //如果数组不包含值,则没有初始值返回
                if (--i < 0)
                throw new TypeError();
            }
            while (true);
        }
        for (; i >= 0; i--) {
            if (i in this)
            rv = fun.call(null, rv, this[i], i, this);
        }
        return rv;
        };
    }         
    var total = [0, 1, 2, 3].reduceRight(function(a, b) { return a + b; });
    document.write("total is : " + total ); 
    </script>      
</body>
</html>

输出

total is : 6

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程