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


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