当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


underscore.js _.reduceRight()用法及代码示例


_.reduceRight()方法是Underscore.js中的内置方法,用于对列表的每个元素从右开始执行操作。当列表中的所有元素从右到左传递到函数/迭代器并且不再有其他元素时,_.reduceRight循环结束。

它同时对数组的两个值(从右到左)应用函数,以将其减少为单个值。

用法:

_.reduceRight(list, function())

参数:它接受下面指定的两个参数:

  • list:它是包含一些要从右到左访问的元素的列表。
  • function:该函数将执行操作以从右到左缩小列表的元素形式。

返回值:它从右到左返回列表形式的缩减元素。

JavaScript代码显示_.reduceRight()函数的工作方式:

  1. 将数字列表传递给_.reduceRight()函数:._reduceRight()函数从列表中一个接一个地获取元素,并对代码执行指定的操作。像这里一样,操作是将列表中的元素串联起来以形成一个新列表。连接所有元素后,reduceRight函数结束。
    <html> 
        
    <head> 
        <script type="text/javascript" src ="https://cdnjs.cloudflare.com/ajax/ 
                          libs/underscore.js/1.9.1/underscore-min.js"></script> 
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/ 
                          libs/underscore.js/1.9.1/underscore-min.js.map"></script> 
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/ 
                          libs/underscore.js/1.9.1/underscore.js"></script> 
    </head> 
        
    <body> 
        <script type="text/javascript"> 
              var list = [[00, 11], [22, 33], [44, 55]]; 
              var answer = _.reduceRight(list, function(a, b) 
                              { return a.concat(b); }, []); 
              document.write(answer);    
        </script> 
    </body> 
        
    </html>

    输出:

  2. 将字符列表传递给_.reduceRight()函数:这里我们也做与第一个例子相同的事情。区别在于,列表ID不是数字,而是字符。因此,最终列表将包含所有字符,但按原始列表的从右到左顺序排列。
    <html> 
       
    <head> 
        <script type="text/javascript" src ="https://cdnjs.cloudflare.com/ajax/ 
                         libs/underscore.js/1.9.1/underscore-min.js"></script> 
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/ 
                         libs/underscore.js/1.9.1/underscore-min.js.map"></script> 
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/ 
                         libs/underscore.js/1.9.1/underscore.js"></script> 
    </head> 
       
    <body> 
        <script type="text/javascript"> 
              var list = [['a', 'b'], ['c', 'd'], ['e', 'f']]; 
              var answer = _.reduceRight(list, function(a, b) 
                               { return a.concat(b); }, []); 
              document.write(answer);       
        </script> 
    </body> 
       
    </html>

    输出:

  3. 找出上一次迭代的值:‘num’变量是存储列表元素的值的变量。因此,由于函数结束时我们将在最后返回值,因此,这意味着列表也结束了。由于列表是从右到左遍历的,因此结果将是最左侧的元素。
    <html> 
       
    <head> 
        <script type="text/javascript" src ="https://cdnjs.cloudflare.com/ajax/ 
              libs/underscore.js/1.9.1/underscore-min.js"></script> 
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/ 
              libs/underscore.js/1.9.1/underscore-min.js.map"></script> 
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/ 
              libs/underscore.js/1.9.1/underscore.js"></script> 
    </head> 
       
    <body> 
        <script type="text/javascript"> 
              var number=_.reduceRight([1, 2, 3, 4, 5], 
                       function(memo, num) { 
                  return num; 
              }); 
              document.write(number);    
        </script> 
    </body> 
       
    </html>

    输出:

  4. 在_.reduceRight()函数中应用算术运算符:如果我们尝试在元素列表上执行任何加法等算术运算,则第一个元素将从最右边开始。
    <html> 
       
    <head> 
        <script type="text/javascript" src ="https://cdnjs.cloudflare.com/ajax/ 
                    libs/underscore.js/1.9.1/underscore-min.js"></script> 
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/ 
                    libs/underscore.js/1.9.1/underscore-min.js.map"></script> 
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/ 
                    libs/underscore.js/1.9.1/underscore.js"></script> 
    </head> 
       
    <body> 
        <script type="text/javascript"> 
              var sum=[0, 1, 2, 3, 4].reduceRight(function(a, c ) { 
              return a + c; 
              }); 
              document.write(sum);   
        </script> 
    </body> 
       
    </html>

    输出:




相关用法


注:本文由纯净天空筛选整理自Sakshi98大神的英文原创作品 Underscore.js _.reduceRight() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。