gpt4 book ai didi

javascript - 逻辑问题,求算法

转载 作者:行者123 更新时间:2023-11-29 15:52:12 25 4
gpt4 key购买 nike


我正在开发一些结果的 javascript 过滤并遇到一些困难..
问题来了……
假设我们有一些标准

  1. 制造商(Trusardi、Calvin Kein、Armani...)
  2. 颜色(红、蓝、黑……)
  3. 其他功能(goretex、blah、blah...)

每个功能都显示为一个复选框...
问题是我想禁用复选框,如果它的选择不会导致任何结果。例如阿玛尼的产品可能只有蓝色所以检查阿玛尼应该禁用黑色和红色,但其他制造商不应该被禁用......作为检查他们应该提供一个结果...
这是到目前为止的代码

results = $("#products li");
results.hide();
var filtersGroup = $("#filters li.filtersGroup");

$("#filters li.filtersGroup a").removeClass("disabled");
filtersGroup.each(function(index) {
var classes = "";

$(this).find("a.checked").each(function(index) {
classes = classes + "." + $(this).attr("id") + ",";
});
if (classes == "") return true;

results = results.filter(classes.substr(0, classes.length - 1));
//periorismos
filtersGroup.not($(this)).each(function(index) {
$(this).find("a").each(function(index) {
if (results.filter("." + $(this).attr("id")).length <= 0) {
$(this).removeClass("checked").addClass("disabled");
}
});
});
});

虽然它成功地过滤了它们,但禁用并不总是正确的。例如要重现问题,如果您选择所有制造商然后选择颜色制造商将被禁用,但颜色不是第一次..
我想到的一个解决方案是创建多个结果来模拟所有下一个可能的检查。(如果 16 个特征和 4 个检查意味着 12 个可能的其他检查..
但我认为这种方法很糟糕……还有其他想法吗?

最佳答案

您可以为每个制造商、颜色等添加一个类别,然后简单地按类别禁用。我假设这里有一个关闭制造商的结果哈希:

results['Trusardi'] = 5 
results['Armani' = 0

..然后:

$("#filters li.filtersGroup a").addClass("disabled");
foreach (m in manufacturers) {
if (manufacturers[m] > 0) {
$("#filters li.filtersGroup a." + m).removeClass("disabled");
}
}

等等

关于javascript - 逻辑问题,求算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4082741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com