@OneMoreLight

Как сделать так, чтобы localStorage при добавлении не перезаписывал объект, а добавлял новый?

У меня есть масив с объектами, в которых значения товара. Есть цикл, который перебирает товар, и при клике на него должен добавлять в корзину. Есть функция, которая сохраняет в localStorage мои объекты, и все вроде хорошо, но при клике, на новый товар (объект), в LS идет перезапись, не создается новый объект. Мне нужно, чтобы все мои товары(объекты), сохранялись по отдельности, а не переписывались. Заранее благодарю. Вот код
let products = [
    {
        name: 'item1',
        price: 15,
        inCart: 0
    },
    {
        name: 'item2',
        price: 20,
        inCart: 0
    },
    {
        name: 'item3',
        price: 10,
        inCart: 0
    },
    {
        name: 'item4',
        price: 25,
        inCart: 0
    }
]
let carts = document.querySelectorAll('.add-cart');
for (let i = 0; i < carts.length; i++) {
    carts[i].addEventListener('click', () => {
        setItems(products[i]);
    })
}
function setItems(product) {
    let cartItems = localStorage.getItem('productInCart');
    cartItems = JSON.parse(cartItems);
    console.log(cartItems);
    if (cartItems != null) {
        product.inCart += + 1;
    } else {
        product.inCart = 1;
    }
    localStorage.setItem('productInCart', JSON.stringify(product))
}
  • Вопрос задан
  • 191 просмотр
Решения вопроса 1
bootd
@bootd
Гугли и ты откроешь врата знаний!
localStorage - это вам не переменная в привычном виде. Там хранятся только строковые значения. Перед тем, что бы 1 из объектов там изменить, нужно сначала распарсить всё имеющееся там, изменить это или его часть, а потом снова положить всё обратно.

P.S. localStorage можно только перезаписать
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы