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


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


_.reduceRight()函数是Underscore.js中的内置方法,用于对列表右侧的每个元素执行操作。当列表中的所有元素从右向左传递到函数/迭代并且没有更多元素剩余时,_.reduceRight 循环结束。它同时对数组的两个值(从右到左)应用一个函数,以将其减少为单个值。

用法:

_.reduceRight(list, function())

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

  • list:它是包含一些将从右到左访问的元素的列表。
  • function:该函数将执行从右到左减少列表元素的操作。

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

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

将数字列表传递给 _.reduceRight() 函数:._reduceRight() 函数从列表中一一取出元素,并对代码执行指定的操作。像这里一样,操作是将列表的元素串联起来形成一个新列表。连接所有元素后,reduceRight 函数结束。

html


<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>

输出:

将字符列表传递给 _.reduceRight() 函数:这里我们也执行与第一个示例中相同的操作。不同之处在于,列表 id 不是数字而是字符。因此,最终列表将包含所有字符,但按原始列表从右到左的顺序排列。

html


<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>

输出:

找出最后一次迭代的值:‘num’变量是存储列表元素值的变量。因此,由于我们在函数结束时返回最后的值,因此,这意味着列表也结束了。由于列表是从右向左遍历的,因此结果将是最左边的元素。

html


<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>

输出:

在 _.reduceRight() 函数中应用算术运算符:如果我们尝试对元素列表执行任何算术运算(例如加法等),则第一个元素将来自最右侧。

html


<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() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。