_.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>
输出:
相关用法
- underscore.js _.reduceRight()用法及代码示例
- underscore.js _.reduce()用法及代码示例
- 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()用法及代码示例
注:本文由纯净天空筛选整理自Sakshi98大神的英文原创作品 Underscore.js _.reduceRight() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。