TS 使goodsID唯一,num加一[{"num": 1, "price": 500, "goodsID": 6},{"num": 1, "price": 500, "goodsID": 6}]
时间: 2023-04-03 17:04:42 浏览: 45
可以使用以下代码来实现:
```
let goodsList = [{"num": 1, "price": 500, "goodsID": 6},{"num": 1, "price": 500, "goodsID": 6}];
let uniqueGoodsList = [];
goodsList.forEach(goods => {
let existingGoods = uniqueGoodsList.find(item => item.goodsID === goods.goodsID);
if (existingGoods) {
existingGoods.num += 1;
} else {
uniqueGoodsList.push({...goods, num: 1});
}
});
console.log(uniqueGoodsList);
```
这段代码会遍历商品列表,如果商品ID已经存在于唯一商品列表中,则将该商品的数量加1,否则将该商品添加到唯一商品列表中,并将数量设置为1。最后,唯一商品列表将包含每个商品的唯一实例,以及该商品在购物车中的数量。
相关问题
TS 使goodsID唯一,num加一
可以使用 TS 中的接口或类型定义来确保 goodsID 唯一,例如:
interface Good {
goodsID: string;
num: number;
}
然后在添加商品时,可以先检查是否已经存在该 goodsID 的商品,如果存在则将 num 加一,否则创建一个新的商品对象。
Error in mounted hook: "TypeError: Cannot read properties of undefined (reading 'goodsId')"
这个错误提示表明在一个挂载(mounted)钩子函数中,尝试读取未定义的属性 'goodsId',导致了类型错误(TypeError)。这可能是由于在挂载时,'goodsId' 属性还没有被正确设置或赋值。你可以检查一下在这个钩子函数中如何使用 'goodsId' 属性,确保它在使用前已经被正确地定义和赋值。