【发布时间】:2019-09-02 09:14:35
【问题描述】:
我正在为客户建立一个小商店并将信息存储为对象数组。但我想确保我没有创建“重复”对象。我见过类似的解决方案,但也许是我对编码的“新奇”让我无法在自己的代码中实现它们的要点,所以我想要一些针对我所做工作的建议。
我尝试将我的代码放入 if 查找中,如果没有“part”,我的变量正在寻找部件号,存在于代码中,然后添加该部件,但无法使其发挥作用。
这是我正在处理的功能:
function submitButton(something) {
window.scroll(0, 0);
cartData = ($(this).attr("data").split(','));
arrObj.push({
part: cartData[0],
description: cartData[1]
});
}
arrObj 被定义为一个全局变量,这是我在这里使用的,带有“部分”和“描述”,这是我试图从其他地方保存并输出到我的“#cart”的数据.我有那部分工作,我只想确保用户不能两次添加相同的项目。 (或更多次。)
对不起,如果我的代码是粗制滥造的或者我看起来很无知;我目前是一名试图弄清楚这些事情的学生,所以大部分 JS 和 Jquery 对我来说都是全新的。谢谢。
【问题讨论】:
-
你需要
if (!arrObj.some(item => item.part == cardData[0]) arrObj.push(...)(Array#some 测试函数是否对任何元素返回true) -
我可以在你们商店购买两个相同的零件吗?
-
Georg:你可以,但这是在其他地方处理的,而不是通过使用数据来处理的。所有这一切都是发回一封电子邮件,因此我将有一个不同的 POST 字段,其中将指定数量,并将该信息通过电子邮件发送给我的客户。它不需要影响数据,因为它存在。
-
@JoelPeterson Chris G 的回答也解决了你的问题...
-
我希望这不是真正的客户和真正的商店。 20 年前这样的事情没什么大不了的,但现在你很快就会让那家商店被黑客入侵和诈骗。
标签: javascript arrays object