2017-09-20 7 views
0

Ich habe eine Tabelle und ein Suchfeld erstellt. Ich versuche, die Tabellenzeilen basierend auf dem Wert zu filtern, den der Benutzer in das Suchfeld eingibt. Ich benutze eckige 4 Rahmen.So kombinieren Sie mehrere Bedingungen in Filtern

Wenn ich die Filterbedingungen individuell einstelle, funktioniert es, funktioniert aber nicht, wenn es kombiniert wird.

Below Filter richtig funktioniert:

return requests.filter(function(request){ 
    return request.requestedBy.indexOf(value)> -1; 
}); 

Aber dies nicht funktioniert:

return requests.filter(function(request){ 
    return request.requestedBy.indexOf(value) + request.client.toLowerCase().indexOf(value)> -1; 
}) 

Antwort

0

Gebrauchte OR Konditionaloperator

return requests.filter(function(request){ 
    return request.requestedBy.toLowerCase().indexOf(value.toLowerCase()) > -1 || request.client.toLowerCase().indexOf(value.toLowerCase()) > -1 
}); 
+0

Sollte es nicht sein UND? – sandrooco

+0

'AND 'Operator erfordert den gleichen Wert in beiden Spalten vorhanden sein, aber in meinem Fall ist der Wert möglicherweise nicht vorhanden, so verwende ich' OR'-Operator. –

+1

In diesem Fall hätte es auch funktioniert, zu testen, ob die Summe der beiden Aufrufe von indexOf() 'größer ist als' -2'. Die Verwendung von '||' wie oben ist jedoch viel lesbarer/wartbarer. – Phylogenesis

Verwandte Themen