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。

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));

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;
}

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

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));
添加回答
舉報