亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

查找數組中最昂貴的項目

查找數組中最昂貴的項目

躍然一笑 2022-12-22 14:43:20
我有一個這樣的數組: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 的新手,不知道解決這個問題的最佳方法。
查看完整描述

4 回答

?
DIEA

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


查看完整回答
反對 回復 2022-12-22
?
慕斯王

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>


查看完整回答
反對 回復 2022-12-22
?
回首憶惘然

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。


查看完整回答
反對 回復 2022-12-22
?
波斯汪

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)


查看完整回答
反對 回復 2022-12-22
  • 4 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號