javascript - 问题条件 if 和 else if 在 for 循环中添加数组中的对象或数组中的新对象不起作用为什么?
问题描述
我的问题是,在我的 if 和 else if for 循环条件中,如果我们添加表中包含的第二个相同产品,则触发第一个条件,但是当产品的颜色条件和盖子发生变化时,它会触发我两个点击产品的条件。该怎么办 ?
如果输入中选择的 id 和颜色相同,如果对象和已经在表中,我想添加一个数量 ++。否则,您将在表中添加一个新对象。问题是它添加了产品中的数量和对象中的数量之后,这里是我的代码和下面控制台的一些屏幕截图
produitData = 产品页面上的产品选择
produitTableau = 数组保存在 localStorage 中的对象
select = 输入包含清漆值
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 &&
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;
};
单击一个对象添加到数组第二次单击数量++将对象添加到数组它的工作第一个条件 在此处输入图像描述
第三次单击数量++将对象添加到数组中它的工作第一个条件 在此处输入图像描述
四次点击我改变了选择值但产品ID与表中的对象相同数量++将对象添加到数组和新对象同时它不是工作条件并继续在数组中添加新对象不同的值并在无穷大中添加数量++
对于我的代码功能中的良好条件,解决方案是什么?
解决方案
推荐阅读
- java - 无法使用 sphinx4 识别实时流语音
- rx-java2 - 使用 RxJava2 中的一系列运算符一次处理一个 PublishSubject 发射
- visual-studio - 你能改变Visual Studio中评论的颜色吗?
- csv - Lua - 如何更改 .csv 文件的第一行?
- ag - FZF - 搜索目标文件夹
- sql-server - Visual Studio SSDT 数据库项目在重新启动时不会显示架构节点
- javascript - 在角度的标题excel js之前添加行
- python - 序列化 JSON 数据的问题
- mongodb - 如何在 mongodb 中更新文档而不删除其中包含的信息?
- node.js - 根据日期下载文件