4 回答

TA贡献1820条经验 获得超3个赞
你可以减少方法。检查价格并用于.
访问最大项目名称。
来自 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)
添加回答
举报