Array von Objekten mit einem anderen Array von Objekten filtern
Dieses Problem beinhaltet das Filtern eines Arrays von Objekten (myArray) mithilfe eines Arrays von Objekten ( meinFilter). Das Ziel besteht darin, ein neues Array (myArrayFiltered) zu erstellen, das nur die Elemente in myArray enthält, die mit den entsprechenden Elementen in myFilter basierend auf Benutzer-ID und Projekt-ID übereinstimmen.
Betrachten Sie das folgende Beispiel:
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" } ]; myFilter = [ { userid: "101", projectid: "11" }, { userid: "102", projectid: "12" }, { userid: "103", projectid: "11" } ];
Das erwartete Ergebnis ist:
myArrayFiltered = [ { userid: "101", projectid: "11", rowid: "1" }, { userid: "102", projectid: "12", rowid: "2" } ];
Um diese Aufgabe zu erfüllen, können wir den Filter und einige Array-Methoden verwenden. Diese Methoden sind in modernen Browsern weit verbreitet, und für ältere Browser gibt es Polyfills.
Die Implementierung umfasst das Filtern von myArray mithilfe der Filtermethode, wobei jedes Element von myFilter zum Vergleich mit den Elementen von myArray verwendet wird. Anschließend wird mit der Methode some überprüft, ob mindestens eine Übereinstimmung zwischen den Eigenschaften userid und projectid des aktuellen Elements in myArray und des entsprechenden Elements in myFilter besteht. Wenn es eine Übereinstimmung gibt, wird das aktuelle Element in das gefilterte Ergebnis einbezogen.
Hier ist ein Beispiel-Codeausschnitt, der diesen Ansatz demonstriert:
<code class="javascript">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>
Dieser Code gibt das erwartete Ergebnis aus und liefert ein gefiltertes Array, das nur die Objekte aus myArray enthält, die den in myFilter.
angegebenen Kriterien entsprechenDas obige ist der detaillierte Inhalt vonWie kann ich ein Array von Objekten basierend auf übereinstimmenden Eigenschaften in einem anderen Array filtern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!