繁体   English   中英

如何在 java 脚本中的对象数组中多个值

[英]How to multiple a value in Array of objects in java script

这是我的阵列。

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" }
        ]


我想在 1.8 的多个价格中增加一倍的尺寸
然后我想在这些更改后显示主菜单
这是我的代码和我所做的。 这仅显示价格和大小,但我想要整个菜单。

代码:

 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" } ] let prices = menu.map(item => item.price); multipliedPrice = prices.map(item => (item * 1.8).toFixed(2)); //------------------------------------------------------- doubledSize = menu.map(item => 2 * parseInt(item.size)); console.log("Size in USA is: " + doubledSize); console.log("Price in USA is: " + multipliedPrice);

与其只返回计算价格,不如返回一个新的 object,如下所示:

menu.map(item => {
  return { ...item,
    price: 2 * parseInt(item.size)
  }
});
let prices = menu.map(item => { item.price = (item.price * 1.8).toFixed(2); return item;});
  • 如果您只是根据需要更改价格并返回所有项目,则可以显示所有数组项目。

为此,您可以使用Array.map ,我们将每个价格乘以 1.8,然后将每个项目的大小加倍:

 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: "Burger", price: 23.83, size: "99oz", type: "Food" } ]; const newMenu = menu.map(item => { return {...item, price: item.price * 1.8, size: parseInt(item.size) * 2 + "oz" } }) console.log("New menu:"); console.log("Item".padEnd(20) + "Size in USA".padEnd(20) + "Price in USA"); newMenu.forEach(item => console.log(item.name.padEnd(20) + (item.size + "").padEnd(20) + item.price.toFixed(2)))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM