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


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