2 回答

TA貢獻2065條經驗 獲得超14個贊
使用以下代碼更改localStorage代碼。問題是您將每次forEach迭代中的所有產品推送到本地存儲。
嘗試下面的代碼。
if (products.length != 0) {
let isExists = products.some(shoe => shoe.name === newShoe.name);
if (!isExists) {
products.push(newShoe);
} else {
products = products.map(shoe => {
if (shoe.name == newShoe.name && !isNaN(newShoe.quantity)) {
shoe.quantity += newShoe.quantity;
return shoe;
}
return shoe;
});
}
localStorage.setItem("products", JSON.stringify(products));
} else {
products.push(newShoe);
localStorage.setItem("products", JSON.stringify(products));
}

TA貢獻1111條經驗 獲得超0個贊
if (products.length != 0) {
for (let index = 0; index < products.length; index++) {
if (products[index].name == newShoe.name) {
products[index].quantity += newShoe.quantity;
localStorage.setItem("products", JSON.stringify(products));
break;
} else{
products.push(newShoe);
localStorage.setItem("products", JSON.stringify(products));
break;
}
}
} else {
products.push(newShoe);
localStorage.setItem("products", JSON.stringify(products));
}
這解決了重復問題,但在添加現有產品時仍然存在數量為空的問題。
- 2 回答
- 0 關注
- 177 瀏覽
添加回答
舉報