使用列表项的Multifilter逻辑

以下代码将在无序列表中的列表项中搜索任何重复的类

  • ,它将显示结果.show().show()

    当前版本

    它目前适用于两种情况

    第一

    显示具有相同类别(至少一个或多个)的任何列表项。

    第二

    显示列表项类重复,但我们可以具体说明哪个类。 例如,查找并显示类.red的重复项

    我有一切准备就绪。

     var $rows = $(".myList").find(".list_entry"); $("#show_red").on("click", function() { $rows.hide().filter(".red").show(); }); $("#reset").on("click", function() { $rows.show(); }); function uniqueValues ( array ) { return array.reduce(function(result, value){ if (result.indexOf(value)  1; }).show(); }); 
          
    span{ border-style: solid; margin: 1px; padding: 1px; } li{ margin:15px; }

    我想要实现的目标

    真实的例子(游戏示例):

    我们有一组按钮来过滤列表项。 列表项将按类属性进行过滤。

    示例filter按钮

     Leveling filters : Level_1, Level_2, Level_3, Level_4, Level_5 Rewards : Experience, AnotherTypeOfExperience, AndAnotherExp AdditionalRewards : Item1, Item2, Item3 MissionZone : City, Suburbs MissionType : Defence, Offense 

  • 示例

    用户选择以下filter示例:

     Show me (Level_1 OR City OR Defence AND) Item1 OR Item3 Show me (Level_1 AND) Duplicates Of Item1 Show me (Level_2 OR Defence AND) Item2 Show me (Level_1 AND City AND) Item2 OR Duplicates of Item2 

    一般想法: Show me (Leveling filters $filter_logic MissionZone $filter_logic MissionType (AND -fixed)) Rewards $filter_logic Rewards/AdditionalRewards

    因此,Levelingfilter,MissionZone,MissionType是filter集1,奖励filter是filter集2。

    例1

     filterset1 = [level_1,city]; filterset2 = [Item1,Duplicates]; $filter_logic = AND; show : (Level_1 AND City) 1 AND (Item1 AND Duplicates) | /\ | filterset1 fixed AND filterset2 

    例2

      filterset1 = [level_1,city]; filterset2 = [Item1,Duplicates]; $filter_logic = AND; show : (Level_1 OR City) 1 AND Item1 OR Duplicates | /\ | filterset1 fixed AND filterset2 

    我不知道怎么开始这个。 如果您有任何提示,请分享。