Я работаю над созданием опции добавления в корзину в локальном хранилище для отправки в нашу ESP для отказа от корзины.У меня есть товары, добавленные в корзину для хранения в Local Storage под ключом: cart.Корзина создает массив, и каждый раз, когда продукт добавляется, новый объект вставляется в массив.Теперь я пытаюсь выяснить, когда снова добавляется элемент с тем же номером, как заставить его обновить уже существующий объект вместо вставки другого объекта в массив.
// Try to retreive the count of shopping cart items from localStorage
var cartCounter = localStorage.getItem('cartCounter');
if (cartCounter != null) {
// We already have at least one item in localStorage so increment the counter
cartCounter = parseInt(cartCounter) + 1
}
else {
// No items in localStorage so initialize the counter
cartCounter = 1;
}
// Get the data layer push
var pr = {{DL - Add To Cart}};
// Store product sku, name, and price in localStorage
// Using string format product[cartCounter]attribute for the key
localStorage.setItem('product' + cartCounter + 'sku', pr.fullProductSKU);
localStorage.setItem('product' + cartCounter + 'name', pr.name);
localStorage.setItem('product' + cartCounter + 'price', pr.price);
localStorage.setItem('product' + cartCounter + 'quantity', pr.quantity);
var addItem = function (sku, qty, price) {
var oldItems = JSON.parse(localStorage.getItem('cart')) || [];
var newItem = {
'product-sku': sku,
'product-qty': qty,
'product-price': price
};
oldItems.push(newItem);
localStorage.setItem('cart', JSON.stringify(oldItems));
};
console.log(JSON.parse(localStorage.getItem('cart')));
addItem(pr.fullProductSKU, pr.quantity, pr.price);
Вот вывод, который я получаю, но он великолепен, но первые два элемента имеют одинаковый SKU, поэтому я хочу, чтобы объект был объединен в 1 объект с qty, показывающим 2, и обновленной ценой.
[{product-sku: "965000070", product-qty: 1, product-price: 40.99}
{product-sku: "965000070", product-qty: 1, product-price: 40.99}
{product-sku: "965000244", product-qty: 1, product-price: 48.99}]
Вот что я хотел бы получить:
[{product-sku: "965000070", product-qty: 2, product-price: 81.98}
{product-sku: "965000244", product-qty: 1, product-price: 48.99}]