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