[英]Unary operator in .reduce() function
我正在閱讀一篇中等文章並遇到了這段代碼。 它使用 .reduce .reduce()
返回 object 和最有經驗的飛行員。 我無法理解表達式(oldest.years || 0)
。 為什么不直接使用(oldest.years )
?
var pilots = [
{
id: 10,
name: "Poe Dameron",
years: 14,
},
{
id: 2,
name: "Temmin 'Snap' Wexley",
years: 30,
},
{
id: 41,
name: "Tallissan Lintra",
years: 16,
},
{
id: 99,
name: "Ello Asty",
years: 22,
}
];
var mostExpPilot = pilots.reduce(function (oldest, pilot) {
return (oldest.years || 0) > pilot.years ? oldest : pilot;
}, {});
console.log(mostExpPilot);
當我們查看Array.reduce
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce#parameters的文檔時,我們可以看到這是因為示例代碼有{}
的initialValue
值,沒有years
屬性。
同樣是:
var mostExpPilot = pilots.reduce(function (oldest, pilot) {
return oldest.years > pilot.years ? oldest : pilot;
}, { years: 0});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.