Vereinfachen Sie die Filterung komplexer Objekte in JavaScript mit mehreren Bedingungen
Berücksichtigen Sie die Notwendigkeit, ein Array von Objekten basierend auf mehreren Bedingungen zu filtern. Bei einem gegebenen Benutzerarray und einem Filterobjekt besteht die Aufgabe darin, Benutzer basierend auf bestimmten Eigenschaften zu filtern.
Anfangsansatz:
Eine anfängliche Filterfunktion wird implementiert, die wiederholt wird die Filtereigenschaften und prüft die Eigenschaften jedes Benutzers. Dieser Ansatz kann jedoch zu redundanten Übereinstimmungen führen.
Verbesserte Lösung:
Um dieses Problem zu beheben, kann eine überarbeitete Filterfunktion wie folgt implementiert werden:
<code class="javascript">users = users.filter(function(item) { for (var key in filter) { if (item[key] === undefined || item[key] != filter[key]) return false; } return true; });</code>
Erklärung:
Diese Funktion funktioniert wie folgt:
Beispielverwendung:
Betrachten Sie das folgende Beispiel:
<code class="javascript">var users = [{ name: 'John', email: '[email protected]', age: 25, address: 'USA' }, { name: 'Tom', email: '[email protected]', age: 35, address: 'England' }, { name: 'Mark', email: '[email protected]', age: 28, address: 'England' } ]; var filter = { address: 'England', name: 'Mark' }; console.log(users.filter(function(item) { for (var key in filter) { if (item[key] === undefined || item[key] != filter[key]) return false; } return true; }));</code>
Ausgabe:
[ { name: 'Mark', email: '[email protected]', age: 28, address: 'England' } ]
Dieser überarbeitete Filter kombiniert effektiv mehrere Bedingungen, um die Objekte basierend auf den angegebenen Kriterien zu filtern.
Das obige ist der detaillierte Inhalt vonWie filtere ich JavaScript-Objekte effizient basierend auf mehreren Bedingungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!