有点故事问题。我会试着把它解释成一个家庭作业问题:
电子商务购物车中的产品列表必须对需要其他产品在购物车中的产品进行验证。这些产品可以要求一个匹配的产品存在于各种产品中。例如,中型自行车框架可能需要一套小轮,中轮,或大轮在购物车内。车轮不要求自行车车架在车内。您可以有多个相同的自行车车架在购物车,他们都需要一套匹配的车轮。如果自行车车架没有匹配的一组车轮,则需要突出显示该自行车车架,并禁用结帐。
棘手的部分是突出显示在这个例子:假设小自行车框架需要一套小自行车轮在车内。小型自行车轮也与中型自行车框架兼容。
如果您的手推车包括2个中型自行车框架,1个小型自行车框架,2个中型自行车轮,和1个小自行车轮,你必须确保连接小车轮与小框架。有可能首先评估两个中型自行车框架,将它们与小自行车轮和一个中型自行车轮配对,然后小自行车框架在车中没有匹配的车轮,然后突出显示并禁用检查。
我可以编程验证这个购物车的有效方法是什么?我的一个朋友想出了一个递归函数,这个函数效率不高,在最后完成验证之前或多或少强制所有可能的组合。我正在寻找一些更好的方法,我觉得必须有一些聪明的算法才能更快地确定这一点。
我试着想出一些方法,只是从购物车的选项中挑选出最想要的东西,但我很容易打破了我的解决方案,改变了购物车中的内容,它们的需求/数量,以及它们的评估顺序。
我无法重新编写我正在使用的这个旧软件来做一些事情,比如在不同的时间持续记住添加到购物车中的一捆物品(例如,当您将自行车框架添加到购物车中时,要求您选择一组轮子,并在购物车中无限期地将这两者映射到一起)。它只需要验证页面上的购物车,除了products、它的数量和一个产品ID列表之外,没有其他信息,每个产品的数量必须有一个匹配的对,并且这个产品ID列表是可选的/并不是所有产品都存在的。
我将用Javascript编写这篇文章,但实际上解决方案甚至可以是伪代码。我只是在这里寻找一个有效的策略来解决这个问题。谢谢你的建议。
发布于 2020-02-12 02:39:43
听起来,使用特定条件的属性来创建一个对象是很好的(不管是布尔人还是项目)。然后可以使用if或switch语句验证它们。“购物车”可以是这些对象的数组。我以前没有使用过类,但它可能是解决许多项目的方法。
https://stackoverflow.com/questions/60180094
复制相似问题