4 回答

TA貢獻1820條經驗 獲得超2個贊
你可以減少方法。檢查價格并用于.
訪問最大項目名稱。
來自 MDN:該
reduce()
方法對數組的每個元素執行一個縮減程序函數(您提供),從而產生單個輸出值。
?
被稱為三元運算符if
(它是and的縮寫形式else
)
有關此處reduce
工作原理的更多信息
現場演示:
let items = [
{
itemName: "Effective Programming Habits",
type: "book",
price: 13.99
},
{
itemName: "Chromebook 2",
type: "computer",
price: 399.99
},
{
itemName: "Programming 101",
type: "book",
price: 15.00
}
]
let maxItem = items.reduce((max, min) => max.price > min.price ? max : min);
console.log(maxItem.itemName) //Chromebook 2
console.log(maxItem) //Full object

TA貢獻1864條經驗 獲得超2個贊
您可以使用 Lodash 庫,集成起來非常簡單快捷。Lodash "maxBy" 可以從數組中找到最大值。https://lodash.com/docs/4.17.15#maxBy
let items = [
{
itemName: "Effective Programming Habits",
type: "book",
price: 13.99
},
{
itemName: "Chromebook 2",
type: "computer",
price: 399.99
},
{
itemName: "Programming 101",
type: "book",
price: 15.00
}
]
console.log(_.maxBy(items, function(o) {
return o.price;
}));
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

TA貢獻1847條經驗 獲得超11個贊
你可以試試這個。
function getMostExp(items) {
let mostExp = 0;
let name;
items.forEach(item => {
if(item.price > mostExp) {
mostExp = item.price;
name = item.itemName;
}
});
return name;
}
更新:
更新答案以返回itemName而不是price。

TA貢獻1811條經驗 獲得超4個贊
按價格對數組進行排序,然后彈出最后一項并獲取 itemName:
items.sort((a,b) => a.price - b.price).pop().itemName
let items = [
{
itemName: "Effective Programming Habits",
type: "book",
price: 13.99
},
{
itemName: "Chromebook 2",
type: "computer",
price: 399.99
},
{
itemName: "Programming 101",
type: "book",
price: 15.00
}
]
console.log([...items].sort((a,b) => a.price - b.price).pop().itemName)
添加回答
舉報