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>
输出:
传递和不传递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>
输出:
找出 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>
输出:
在 _.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>
输出:
相关用法
- underscore.js _.reduceRight()用法及代码示例
- underscore.js _.reductions()用法及代码示例
- underscore.js _.rest()用法及代码示例
- underscore.js _.repeat()用法及代码示例
- underscore.js _.renameKeys()用法及代码示例
- underscore.js _.result()用法及代码示例
- underscore.js _.restArguments()用法及代码示例
- underscore.js _.reject用法及代码示例
- underscore.js _.random()用法及代码示例
- underscore.js _.rCurry()用法及代码示例
- underscore.js _.rcurry3()用法及代码示例
- underscore.js _.rcurry2()用法及代码示例
- underscore.js _.range()用法及代码示例
- underscore.js _.delay()用法及代码示例
- underscore.js _.difference()用法及代码示例
- underscore.js _.flatten()用法及代码示例
- underscore.js _.initial()用法及代码示例
- underscore.js _.zip()用法及代码示例
- underscore.js _.wrap()用法及代码示例
- underscore.js _.without()用法及代码示例
- underscore.js _.last()用法及代码示例
- underscore.js _.isRegExp()用法及代码示例
- underscore.js _.size()用法及代码示例
- underscore.js _.union()用法及代码示例
- underscore.js _.unzip()用法及代码示例
注:本文由纯净天空筛选整理自Sakshi98大神的英文原创作品 Underscore.js _.reduce() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。