JavaScript中在数组输入时过滤数组最小值的问题



我希望在控制台上显示价格最低的食品,但是我的代码不起作用。谢谢你帮我弄到正确的代码。

给我我想要的输出:name: Berger price: 23.83

let menu = [
{ id: 1, name: "Soda", price: 3.12, size: "4oz", type: "Drink" },
{ id: 2, name: "Beer", price: 6.50, size: "8oz", type: "Drink" },
{ id: 3, name: "Margarita", price: 12.99, size: "12oz", type: "Drink" },
{ id: 4, name: "Pizza", price: 25.10, size: "60oz", type: "Food" },
{ id: 5, name: "Kebab", price: 31.48, size: "42oz", type: "Food" },
{ id: 6, name: "Berger", price: 23.83, size: "99oz", type: "Food" },
];
const cheap_food = () => {
const cheap = menu.filter(menuItem => menuItem.price > 0 && menuItem.type === "Food");
cheap.forEach(price => console.log(Math.min(price)));
}
cheap_food();

从每个菜单项中解构price你得到的对象。即使在filter之后,cheap数组也是对象的数组不仅仅是价格价值。随着你的更新的问题-

let menu = [
{ id: 1, name: "Soda", price: 3.12, size: "4oz", type: "Drink" },
{ id: 2, name: "Beer", price: 6.50, size: "8oz", type: "Drink" },
{ id: 3, name: "Margarita", price: 12.99, size: "12oz", type: "Drink" },
{ id: 4, name: "Pizza", price: 25.10, size: "60oz", type: "Food" },
{ id: 5, name: "Kebab", price: 31.48, size: "42oz", type: "Food" },
{ id: 6, name: "Berger", price: 23.83, size: "99oz", type: "Food" },
];

const cheap_food = () => {
const cheap = menu.filter(menuItem => menuItem.price > 0 && menuItem.type === "Food");
const item = cheap.sort((itemA,itemB)=>itemA.price-itemB.price)[0];
console.log(`${item.name} price : ${item.price}`);
}
cheap_food();

仅使用price.price而不是仅使用价格。原因是filter函数返回过滤后的对象。因此,您需要解构对象或直接访问price。

最新更新