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