Условия проблемы, если и иначе, если в цикле for добавление количества в объект в массиве или новый объект в массиве не работает, почему?

#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 изменили выбранное значение, но идентификатор продукта такой же, как и в объекте в таблице количество добавьте объект в массив и новый объект одновременно, это не условия работы, и продолжайте добавлять новый объект в массив для другого значения и добавлять количество в бесконечность

введите описание изображения здесь

каково решение для хороших условий в моей функции кода?