Array von Objekten basierend auf mehreren Filterbedingungen in JavaScript vereinfachen
Frage:
Wie Kann ich ein Array von Objekten basierend auf mehreren Filterbedingungen in JavaScript vereinfachen? Zum Beispiel mit dem folgenden Array:
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' } ];
Und Filterobjekt:
var filter = { address: 'England', name: 'Mark' };
Ich möchte alle Benutzer sowohl nach Adresse als auch nach Name filtern. Derzeit fügt meine Funktion in der ersten Iteration alle Benutzer mit der passenden Adresse hinzu und in der zweiten Iteration nur den letzten Benutzer mit dem passenden Namen. Allerdings muss ich nach beiden Bedingungen gleichzeitig filtern.
Antwort:
Um ein Array von Objekten basierend auf mehreren Bedingungen zu filtern, können Sie den folgenden Ansatz verwenden:
users = users.filter(function(item) { for (var key in filter) { if (item[key] === undefined || item[key] != filter[key]) return false; } return true; });
Dieser Code durchläuft sowohl das Array von Objekten als auch das Filterobjekt und stellt so sicher, dass jedes Objekt im Array alle im Filter angegebenen Bedingungen erfüllt. Der Vergleich von Item[Schlüssel] und Filter[Schlüssel] prüft, ob der Wert des Eigenschaftsschlüssels im Objektelement mit dem entsprechenden Wert im Filterobjekt übereinstimmt. Wenn eine der Bedingungen fehlschlägt, gibt die Filterfunktion „false“ zurück und schließt dieses Objekt aus dem gefilterten Ergebnis aus. Andernfalls wird „true“ zurückgegeben, was bedeutet, dass das Objekt alle Filterbedingungen erfüllt.
Durch die Anwendung dieses Ansatzes können Sie ein Array von Objekten effektiv auf der Grundlage mehrerer Kriterien filtern und so sicherstellen, dass nur die Objekte ausgewählt werden, die alle Bedingungen erfüllen sind im Ergebnis enthalten.
Das obige ist der detaillierte Inhalt vonWie filtere ich ein Array von Objekten nach mehreren Bedingungen in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!