當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。