查找数组中最昂贵的项目

我有一个这样的数组:


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

  } 

]

我需要创建一个循环遍历数组并找到最昂贵的项目并返回 itemName 的函数。我是 JS 的新手,不知道解决这个问题的最佳方法。


跃然一笑
浏览 147回答 4
4回答

DIEA

你可以减少方法。检查价格并用于.访问最大项目名称。来自 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 2console.log(maxItem) //Full object

慕斯王

您可以使用 Lodash 库,集成起来非常简单快捷。Lodash "maxBy" 可以从数组中找到最大值。https://lodash.com/docs/4.17.15#maxBylet items = [&nbsp; {&nbsp; &nbsp; itemName: "Effective Programming Habits",&nbsp; &nbsp; type: "book",&nbsp; &nbsp; price: 13.99&nbsp; },&nbsp; {&nbsp; &nbsp; itemName: "Chromebook 2",&nbsp; &nbsp; type: "computer",&nbsp; &nbsp; price: 399.99&nbsp; },&nbsp;{&nbsp; &nbsp; itemName: "Programming 101",&nbsp; &nbsp; type: "book",&nbsp; &nbsp; price: 15.00&nbsp; }&nbsp;]console.log(_.maxBy(items, function(o) {&nbsp; &nbsp; &nbsp; return o.price;&nbsp;}));&nbsp;&nbsp;&nbsp;<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

回首忆惘然

你可以试试这个。function getMostExp(items) {&nbsp; let mostExp = 0;&nbsp; let name;&nbsp; items.forEach(item => {&nbsp; &nbsp;if(item.price > mostExp) {&nbsp; &nbsp; &nbsp;mostExp = item.price;&nbsp; &nbsp; &nbsp;name = item.itemName;&nbsp; &nbsp;}&nbsp; });&nbsp; return name;}更新:更新答案以返回itemName而不是price。

波斯汪

按价格对数组进行排序,然后弹出最后一项并获取 itemName:items.sort((a,b) => a.price - b.price).pop().itemNamelet items = [&nbsp; {&nbsp; &nbsp; itemName: "Effective Programming Habits",&nbsp; &nbsp; type: "book",&nbsp; &nbsp; price: 13.99&nbsp; },&nbsp; {&nbsp; &nbsp; itemName: "Chromebook 2",&nbsp; &nbsp; type: "computer",&nbsp; &nbsp; price: 399.99&nbsp; },&nbsp;{&nbsp; &nbsp; itemName: "Programming 101",&nbsp; &nbsp; type: "book",&nbsp; &nbsp; price: 15.00&nbsp; }&nbsp;]console.log([...items].sort((a,b) => a.price - b.price).pop().itemName)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript