У меня проблема с моим кодом, я пробовал все, но действительно не знаю, почему он не работает так, как я хочу. Когда я хочу добавить комнату тележки, в первый раз она есть, но когда я снова нажимаю на ту же комнату, число добавляется дважды каждый раз (например, 1, затем 3, затем 5, затем 7 ...).
for (let i = 0; i < carts.length; i++) {
carts[i].addEventListener("click", () => {
cartNumbers(products[i]);
totalCost(products[i]);
updateNavCartNumber();
setItems(products[i]);
});
}
function cartNumbers(product) {
let treatNumbers = localStorage.getItem("cartNumbers");
treatNumbers = parseInt(treatNumbers);
if (treatNumbers) {
localStorage.setItem("cartNumbers", treatNumbers + 1);
} else {
localStorage.setItem("cartNumbers", 1);
}
setItems(product);
}
function setItems(product) {
let treatItems = localStorage.getItem("treatsInCart");
treatItems = JSON.parse(treatItems);
if (treatItems != null) {
if (treatItems[product.name] == undefined) {
treatItems = {
...treatItems,
[product.name]: product,
};
}
treatItems[product.name].incarts += 1;
} else {
product.incarts = 1;
treatItems = {
[product.name]: product,
};
}
localStorage.setItem("treatsInCart", JSON.stringify(treatItems));
console.log(treatItems);
}
function totalCost(product) {
let cartCost = localStorage.getItem("totalCost");
if (cartCost != null) {
cartCost = parseInt(cartCost);
localStorage.setItem("totalCost", cartCost + product.price);
} else {
localStorage.setItem("totalCost", product.price);
}
}
}
Помогите, пожалуйста.