Я новичок в JS. У меня есть сведения о продукте как объекты. Мне нужно обновить массив корзины одним щелчком мыши,
if (cart=== null)=> qty = 1 => push to cart array ;
else if ( same name && same lense ) => updating qty+1; (bcz there is a item that fulfill that condition) ;
else if ( same name && different lense ) => qty = 1;=> then push to cart array;
else ( different name && different lense ) => qty = 1;=> then push to cart array;
Но когда я нажимаю (с таким же именем и той же линзой), должно быть обновлено количество элементов (с таким же именем и той же линзой). но он обновляет только количество index [0]. Как мне решить эту проблему?
Это мой массив тележек
let cart = JSON.parse(localStorage.getItem('productArray')) || [];``
> //new item object//
>//lense client has severel option//
const cartItem = {
pic: singlePic.src,
name: singleProductName.textContent,
qty: 0,
price: singleProductPrice,
lense: "",
};
function addToCart() {
//no item
if (JSON.parse(localStorage.getItem('productArray')) == null) {
//update the cart
cartItem.qty = 1;
//push to the cart
cart.push(cartItem);
localStorage.setItem('productArray', JSON.stringify(cart))
// update the cart after the condition
cart = JSON.parse(localStorage.getItem('productArray'))
} else {
// cart has some items
for (let oldItem of cart) {
if (cart.some(oldItem => oldItem.name === cartItem.name && oldItem.lense === cartItem.lense)) { oldItem.qty += 1
// replace order with updated cart
localStorage.setItem("productArray", JSON.stringify(cart));
cart = JSON.parse(localStorage.getItem("productArray"))
}
else if (cart.some(oldItem => oldItem.name === cartItem.name && oldItem.lense !== cartItem.lense)) {
cartItem.qty = 1
cart.push(cartItem)
localStorage.setItem('productArray', JSON.stringify(cart))
cart = JSON.parse(localStorage.getItem("productArray"))
}
else {
cartItem.qty = 1
cart.push(cartItem)
localStorage.setItem('productArray', JSON.stringify(cart))
cart = JSON.parse(localStorage.getItem("productArray"))
}
}
}