【发布时间】:2019-03-27 13:28:53
【问题描述】:
我有一个餐厅菜单,它是一个对象数组,每个对象都具有以下属性:-
- 姓名
- id - id 是自动生成的
- 数量
- options - 它本身是一个包含两个值对的数组 -size & price
现在,我想允许用户在验证购物车中不存在所选商品后将商品添加到购物车,我面临的问题是,每个商品都有一个 Id,但同时时间有两种或多种不同的大小
这是我的代码
export default {
data(){
return {
cart: []
}
}
//...
methods: {
addItem(pizza, options){
let selectedPizza= {
id: pizza.id,
name: pizza.name,
size: options.size,
price: options.price
quantity: 1
}
if(this.cart.length > 0) {
this.cart.forEach(item => {
if(item.name === selectedPizza.name && item.size === selectedPizza.size && item.id === selectedPizza.id) {
return item.quantity++
} else {
this.cart.push(selectedPizza)
}
})
} else {
this.cart.push(selectedPizza)
}
}
}
}
上面的代码可以正常工作,除非我尝试添加不同大小的同一个披萨,因为在这种情况下,id 是重复的,因为每个项目都有一个 ID,不是每个披萨大小都有一个,任何人都可以想的解决方法? 提前谢谢..
【问题讨论】:
-
一个披萨有多种尺寸的理想行为是什么?
-
很抱歉你的问题对我来说不够清楚,在菜单中,每个披萨都有两种尺寸,所以我想让用户不仅可以添加不同的披萨,还可以添加不同的披萨尺寸。例如,他想要两个玛格丽特比萨饼,一个大号一个小号..
-
所以数据结构问题不属于编码问题?如果您不能帮忙,请删除您的负面评价吗?!
标签: javascript arrays vue.js javascript-objects