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


underscore.js _.reduce()用法及代碼示例


Underscore.js _.reduce()function 是 Underscore.js 中的內置函數,用於將數組/對象的屬性轉換為單個值,或用於從給定值列表創建單個結果。當列表的所有元素都傳遞給函數/迭代並且沒有更多元素剩餘時,_.each 循環結束。 iterate 函數利用 memory ,即每次計算值時它都會記住返回值。

用法:

_.reduce(list, iteratee, memo);

參數:

  • 列表:它是包含一些元素的列表。
  • 迭代:該函數用於獲取列表中的所有元素,並且還記住所有返回值。
  • 備忘錄:它是一個值。

返回值:

它返回 _.reduce() 函數返回的最後一次迭代的值。

將數字列表傳遞給 _.reduce() 函數:

._reduce()函數從列表中一一取出元素,並對代碼執行指定的操作。就像這裏的操作是列表元素的添加。添加完所有元素後,reduce 函數結束。這裏備忘錄的起始值取為‘0’。

例子:下麵的代碼示例實現了 underscore.js _.reduce() 方法。

html


<!DOCTYPE html>
<html>
<head>
    <script 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">
        let sum = _.reduce(
        [1, 2, 3, 4, 5], function (memo, num) 
        {
            return memo + num;
        });
        console.log(sum); 
    </script>
</body>
</html>

輸出:

Output

傳遞和不傳遞memo的值:

如果我們不傳遞 memo 變量的值,那麽它將獲取列表中第一個元素的值。否則它采用提到的值。

例子:下麵的示例實現了帶或不帶 memo 參數的 underscore.js _.reduce 方法。

html


<!DOCTYPE html>
<html>
<head>
    <script 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">
        let sum1 = _.reduce(
        [1, 2, 3, 4, 5], function (memo, num) 
        {
            return memo + num;
            0
        });
        let sum2 = _.reduce(
        [1, 2, 3, 4, 5], function (memo, num) 
        {
            return memo + num;
            5
        });
        console.log(sum1);
        console.log(sum2);
    </script>
</body>
</html>

輸出:

Output

找出 num 變量的值:

‘num’變量是存儲列表元素值的變量。因此,由於我們在函數結束時返回最後的值,因此,這意味著列表也結束了。因此,將打印列表的最後一個元素。

例子:下麵的代碼示例使用 underscore.js _.reduce() 方法查找 num 變量的值。

html


<!DOCTYPE html>
<html>
<head>
    <script 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">
        let num = _.reduce(
        [1, 2, 3, 4, 5], function (memo, num) 
        {
            return num;
        });
        console.log(num);
    </script>
</body>
</html>

輸出:

Output

在 _.reduce() 函數中應用邏輯運算符:

從上麵的例子我們可以清楚的看出,memo的值為1,num的值為5(僅針對本例)。因此,我們可以應用邏輯運算符(>、<)來比較 num 和 memo 的值,然後打印它們的值。

例子:以下代碼示例將邏輯運算符與 underscore.js _.reduce() 方法結合使用。

html


<!DOCTYPE html>
<html>
<head>
    <script 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">
        let result = _.reduce(
        [1, 2, 3, 4, 5], function (memo, num) 
        {
            if (memo < num)
                return memo;
            else
                return num;
        });
          console.log(result);
    </script>
</body>
</html>

輸出:

Output



相關用法


注:本文由純淨天空篩選整理自Sakshi98大神的英文原創作品 Underscore.js _.reduce() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。