Здравствуйте, написал функцию которая принимает id нового товара и заносит её в корзину которая лежит в
local srorage. Когда кликаешь по одному товару то всё работает как нужно, увеличивается counter и все ок. НО когда добавляешь ещё один товар то вместе с увеличение count добавляется ещё один товар. Не могу понять с чем связано уже голову сломал. Код
// Получаем данные из LocalStorage
function getCartData() {
return JSON.parse(localStorage.getItem('cart'));
}
// Записываем данные в LocalStorage
function setCartData(o) {
localStorage.setItem('cart', JSON.stringify(o));
}
// Добавляем товар в корзину
function addItemToBag(newItem) {
var cartData = getCartData() || []; // получаем данные корзины или создаём новый объект, если данных еще нет
if(cartData.length==0){ // если в массиве ничего не лежит создаем нулевой элемент
cartData.push({
id: newItem,
count: 1
});
}else{
for (let i = 0; i < cartData.length; i++) { //цикл в котором проверяем не лежит ли уже товар с таким id корзине
if (cartData[i].id === newItem) { // если лежит то увеличиваем count
cartData[i].count+=1;
} else { //если нет то добавляем новый
cartData.push({
id: newItem,
count: 1
});
}
}
}
setCartData(cartData) // Обновляем данные в LocalStorage
}
Скрин что выводит в local storage