Heim > Web-Frontend > js-Tutorial > Wie filtere ich ein Array von Objekten basierend auf Übereinstimmungen mit einem anderen Array?

Wie filtere ich ein Array von Objekten basierend auf Übereinstimmungen mit einem anderen Array?

Barbara Streisand
Freigeben: 2024-11-01 08:39:02
Original
487 Leute haben es durchsucht

How to Filter an Array of Objects Based on Matches with Another Array?

Ein Array von Objekten mit einem anderen Array von Objekten filtern

Problem:

Sie möchten um ein Array von Objekten basierend auf Übereinstimmungen mit einem zweiten Array von Objekten zu filtern. Zum Beispiel bei den folgenden Arrays:

<code class="js">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" },
];</code>
Nach dem Login kopieren

Sie müssen myArray filtern, um nur Objekte einzuschließen, deren Benutzer-ID- und Projekt-ID-Eigenschaften mit denen in myFilter übereinstimmen. Das erwartete Ergebnis ist:

<code class="js">myArrayFiltered = [
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" },
];</code>
Nach dem Login kopieren

Lösung:

Um das Array zu filtern, können Sie den Filter und einige Array-Methoden verwenden:

<code class="js">const myArrayFiltered = myArray.filter((el) => {
  return myFilter.some((f) => {
    return f.userid === el.userid && f.projectid === el.projectid;
  });
});</code>
Nach dem Login kopieren

Erklärung:

  • Die Filtermethode iteriert über myArray und erstellt ein neues Array, das nur die Objekte enthält, die die als Argument bereitgestellte Bedingung erfüllen.
  • Die Die Methode some, die innerhalb der Bedingung verwendet wird, prüft, ob ein Element in myFilter mit den Eigenschaften userid und projectid des aktuellen Elements in myArray übereinstimmt.
  • Wenn eine Übereinstimmung gefunden wird, gibt die Methode some true zurück, was angibt, dass das aktuelle Element sollte im gefilterten Array enthalten sein.

Das obige ist der detaillierte Inhalt vonWie filtere ich ein Array von Objekten basierend auf Übereinstimmungen mit einem anderen Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage