Logica multi filtro utilizzando voci di elenco

il codice seguente cercherà qualsiasi class duplicata

  • in una voce di elenco all’interno di una lista non ordinata e mostrerà i risultati .show() e .hide() tutto il resto.

    Versione corrente

    Attualmente funziona in due scenari

    Primo

    Mostra elementi della lista che hanno la stessa class (almeno uno o più).

    Secondo

    Visualizza gli elementi della lista duplicati di class, ma possiamo specificare quale class sarà. Ad esempio, trova e visualizza duplicati di class .red

    Ho tutto pronto e in corso.

     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; }

    Quello che voglio ottenere

    Esempio reale (esempio di gioco):

    Abbiamo una serie di pulsanti che filtreranno gli elementi dell’elenco. Gli elementi della lista verranno filtrati dagli attributi della class.

    Pulsanti di filtro di esempio

     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 

    esempio di

  • L’utente seleziona i seguenti esempi di filtri:

     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 

    Idea generale: Show me (Leveling filters $filter_logic MissionZone $filter_logic MissionType (AND -fixed)) Rewards $filter_logic Rewards/AdditionalRewards

    Quindi i filtri di livellamento, MissionZone, MissionType è il set di filtri 1 i filtri di ricompensa sono il set di filtri 2.

    Esempio 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 

    esempio 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 

    Non so nemmeno come iniziare. Se hai qualche suggerimento per favore condividili.