Array von Objekten mithilfe eines anderen Arrays von Objekten filtern
Die vorliegende Aufgabe besteht darin, ein Array von Objekten (myArray) basierend auf a zu filtern zweites Array von Objekten (myFilter), um nur die Objekte in myArray zurückzugeben, deren Benutzer-ID- und Projekt-ID-Eigenschaften mit denen in übereinstimmen myFilter.
Lösung
Um dies zu erreichen, verwenden wir eine Kombination aus Filter und einigen Methoden. Die Filtermethode durchläuft jedes Element in myArray und gibt ein neues Array zurück, das nur die Elemente enthält, die eine bestimmte Bedingung erfüllen. In diesem Fall ist die Bedingung erfüllt, wenn die Benutzer-ID und die Projekt-ID des Elements mit einem der Benutzer-ID- und Projekt-ID-Paare in myFilter übereinstimmen.
Die Methode some wird innerhalb der Filterbedingung verwendet, um zu bestimmen, ob eines der Elemente in myFilter zutrifft die vorgegebenen Kriterien. Die Bedingung prüft, ob die Eigenschaften userid und projectid des aktuellen myFilter-Elements denen des aktuellen myArray-Elements entsprechen. Wenn eine Übereinstimmung gefunden wird, gibt die some-Methode „true“ zurück und gibt an, dass die Bedingung erfüllt ist und das Element in das gefilterte Array aufgenommen werden sollte.
Codebeispiel
<code class="js">const myArray = [ { userid: "100", projectid: "10", rowid: "0" }, { userid: "101", projectid: "11", rowid: "1"}, { userid: "102", projectid: "12", rowid: "2" }, { userid: "103", projectid: "13", rowid: "3" }, { userid: "101", projectid: "10", rowid: "4" } ]; const myFilter = [ { userid: "101", projectid: "11" }, { userid: "102", projectid: "12" }, { userid: "103", projectid: "11"} ]; const myArrayFiltered = myArray.filter((el) => { return myFilter.some((f) => { return f.userid === el.userid && f.projectid === el.projectid; }); }); console.log(myArrayFiltered);</code>
Ausgabe
[ { userid: "101", projectid: "11", rowid: "1" }, { userid: "102", projectid: "12", rowid: "2" } ]
Das obige ist der detaillierte Inhalt vonWie filtere ich ein Array von Objekten basierend auf übereinstimmenden Eigenschaften in einem anderen Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!