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

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

最貴的物品的 >> NAME << 函數

最貴的物品的 >> NAME << 函數

開滿天機 2023-07-29 15:25:45
我已經學習 Javascript 幾個星期了,這就是我最近兩天陷入困境的地方。我很確定這是最明顯的代碼行,但我無法將我最昂貴的商品的編號與其名稱相匹配。這就是我所擁有的:function mostExpensiveItemName(sampleCart) {  let expensive = 0;  var name;    for(let i = 0; i < sampleCart.length; i++) {      if(sampleCart[i].price > 0) {          expensive += sampleCart[i].price;      name += sampleCart[i].itemName;    }  }    return name;}這些是數據:const sampleCart = [  {    itemName: "Effective Programming Habits",    type: "book",    price: 13.99  },  {    itemName: "Creation 3005",    type: "computer",    price: 299.99  },  {    itemName: "Finding Your Center",    type: "book",    price: 15.00  }]
查看完整描述

5 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

您可以使用ES6功能并按價格對購物車項目進行排序,然后獲得最貴的,例如:

function mostExpensiveItemName(sampleCart) {

? const sortBypriceCart = sampleCart.sort((itemA, itemB) => itemB?.price - itemA?.price) // sort descending by price

? const expensiveItem = sortBypriceCart[0];


? return expensiveItem.itemName

}

你的代碼將是:


function mostExpensiveItemName(sampleCart) {

? let expensive = 0;

? let name;

??

? for(let i = 0; i < sampleCart.length; i++) {

? ? // compares if the next value is higher and replaces it

? ? if(sampleCart[i].price > expensive) {

? ? ? expensive = sampleCart[i].price; // += is to sum/add values to the same variables, does not apply here

? ? ? name = sampleCart[i].itemName; // assign the possible final name

? ? }

? }

? return name;

}

for總是會比例如更快forEach,但sort它是一個很好的選擇,它比 更快forEach。


查看完整回答
反對 回復 2023-07-29
?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

const sampleCart = [

  {

    itemName: "Effective Programming Habits",

    type: "book",

    price: 13.99

  },

  {

    itemName: "Creation 3005",

    type: "computer",

    price: 299.99

  },

  {

    itemName: "Finding Your Center",

    type: "book",

    price: 15.00

  }

];


function mostExpensiveItemName(sampleCart) {

  let expensive = 0;

  var name;

  

  for(let i = 0; i < sampleCart.length; i++) {

  

    if(sampleCart[i].price > expensive) {

    

      expensive = sampleCart[i].price;

      name = sampleCart[i].itemName;

    }

  }

    return name;

}


console.log(mostExpensiveItemName(sampleCart));


查看完整回答
反對 回復 2023-07-29
?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

這并不完全清楚,但似乎您正在尋找最昂貴的物品的名稱。


該代碼似乎包含不少邏輯錯誤。


function mostExpensiveItemName(sampleCart) {

    let expensive = 0;

    var name;


    for (let i = 0; i < sampleCart.length; i++) {

        if (sampleCart[i].price > 0) {

            expensive += sampleCart[i].price;

            name += sampleCart[i].itemName;

        }

    }


    return name;

}

您將名稱分配給變量,而您應該只返回項目的名稱。


function mostExpensiveItemName(sampleCart) {

    let mostExpensive = sampleCart[0];


    for (let i = 1; i < sampleCart.length; ++i) {

        if (sampleCart[i].price > mostExpensive.price) {

            expensive = sampleCart[i];

        }

    }


    return mostExpensive.itemName;

}


查看完整回答
反對 回復 2023-07-29
?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

最簡單的方法是迭代數組 - 將價格與現有的最高價格進行比較,如果其更大則設置一個索引 - 然后使用該索引重新運行數組中的 itemName。


const sampleCart = [

  {

    itemName: "Effective Programming Habits",

    type: "book",

    price: 13.99

  },

  {

    itemName: "Creation 3005",

    type: "computer",

    price: 299.99

  },

  {

    itemName: "Finding Your Center",

    type: "book",

    price: 15.00

  }

];


function mostExpensiveItemName(arr) {

  var mostExpensive = 0;

  var mostExpensiveIndex = 0;


 arr.forEach(function(item, index) {

  if(item.price > mostExpensive) {

   mostExpensive = item.price;

   mostExpensiveIndex = index;

  }

 })

    return sampleCart[mostExpensiveIndex].itemName;

}


console.log(mostExpensiveItemName(sampleCart)); // gives Creation 3005


查看完整回答
反對 回復 2023-07-29
?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

const sampleCart = [

  {

    itemName: "Effective Programming Habits",

    type: "book",

    price: 13.99

  },

  {

    itemName: "Creation 3005",

    type: "computer",

    price: 299.99

  },

  {

    itemName: "Finding Your Center",

    type: "book",

    price: 15.0

  }

];


function mostExpensiveItemName(sampleCart) {

  // lets find the biggest number

  const biggestPrice = Math.max(...sampleCart.map((item) => item.price));


  return sampleCart.find((item) => item.price === biggestPrice).itemName;

}


console.log(mostExpensiveItemName(sampleCart));


查看完整回答
反對 回復 2023-07-29
  • 5 回答
  • 0 關注
  • 231 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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