Чувствуя, как обновить массив obj в localStorage
, когда элемент уже существует, мой localStorage
создает новый массив после обновления, а не обновления или добавления нового объекта obj.Как обновить массив obj в localStorage, если элемент уже существует
LocalStorage OBJ - функция
cart - [{"Product":"Coke","Price":"1.99","Quantity":"1x "}]
AddToCart где я добавляю я нажимаю объект array[]
var itemStorage = [];
for (var key in drinkCounter) {
...
var cartObj = { Product: key, Price: drinkCounter[key].price, Quantity: drinkCounter[key].count + 'x ' }
itemStorage.push(cartObj);
localStorage.setItem('cart', JSON.stringify(itemStorage));
...
}
Вот JSfiddle, так как только вы добавили пункт и обновите страницу и добавьте тот же или новый элемент воссоздает localStorage
, как я могу обновить его, а не воссоздавать новый каждый раз, когда вы обновляете страницу?
Edit - если вы добавили один и тот же предмет он должен обновить {Quantity:}
После ответа ниже, я попытался обновить пункт количество существующего пункта, однако, что не работает. Любое предложение?
cartItems.forEach(function (item, i) {
if (item.Product == key) {
item.Quantity = drinkCounter[key].count;
// item.Quantity += 1; // or no avail
index = i;
}
});
подсчитывать количество Fixed LocalStorage
if (index !== -1) {
cartItems[index].Quantity = parseInt(cartItems[index].Quantity) + 1 + 'x';
} else {
var cartObj = { Product: key, Price: drinkCounter[key].price, Quantity: drinkCounter[key].count + 'x ' }
cartItems.push(cartObj);
}
** Edit - ** Быстрый вопрос о полной стоимости, может кто-то указать, почему, когда я добавляю предмета у totalPrice является 0
, когда оно должно быть цена товара
'sessionStorage' будет удален после перезагрузки страницы! Я думаю, что я хотел использовать 'localStorage'! –
Извините, я изменил его в своем коде, забыл изменить его здесь. но да, это должно быть «localStorage». Но проблема также существует с использованием 'localStorage' – MrNew