#javascript #arrays #object
Вопрос:
моя проблема заключается в том, что в моем условии «если» и «если» в цикле » для » первое условие срабатывает, если мы добавляем второй такой же продукт, содержащийся в таблице, но когда цветовое состояние продукта меняется, и эта крышка одинакова, это вызывает у меня два условия для нажатия на продукт. Что делать?
Я хотел бы добавить количество , если объект и уже в таблице, если идентификатор и цвет, выбранные во входных данных, совпадают. в противном случае вы добавляете новый объект в таблицу. После того, как проблема заключается в том, что он добавляет как количество в продукте, так и количество в объекте, вот мой код и скриншот консоли ниже
produitData = выбор продукта на странице продукта
produitTableau = Массив объектов, сохраненных в локальном хранилище
выберите = входные данные содержали значение лака
const addBasket = () => {
let bouton = document.getElementById(produitData._id);
bouton.addEventListener("click", () => {
let produitTableau = JSON.parse(localStorage.getItem("produit"));
let select = document.getElementById("vernis");
const fusionProduitTeinte = Object.assign({}, produitData, {
teinte: `${select.value}`,
quantite: 1,
});
if (produitTableau == null) {
produitTableau = [];
produitTableau.push(fusionProduitTeinte);
localStorage.setItem("produit", JSON.stringify(produitTableau));
} else {
for (i = 0; i < produitTableau.length; i ) {
if (
produitTableau[i]._id == produitData._id amp;amp;
produitTableau[i].teinte == select.value
) {
produitTableau[i].quantite ;
console.log("quantite ");
localStorage.setItem("produit", JSON.stringify(produitTableau));
} else {
console.log("nouveau");
produitTableau.push(fusionProduitTeinte);
localStorage.setItem("produit", JSON.stringify(produitTableau));
}
}
}
console.log(select.value);
console.log(produitTableau);
// window.location = "panier.html";
});
return;
};
один клик один объект добавить в массив
второй клик количество добавить объект в массив это работа условия fisrt
введите описание изображения здесь
третий щелчок количество добавить объект в массив это работа условия fisrt введите описание изображения здесь
четыре щелчка im изменили выбранное значение, но идентификатор продукта такой же, как и в объекте в таблице количество добавьте объект в массив и новый объект одновременно, это не условия работы, и продолжайте добавлять новый объект в массив для другого значения и добавлять количество в бесконечность
введите описание изображения здесь
каково решение для хороших условий в моей функции кода?