Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie filtere ich ein Array von Objekten basierend auf übereinstimmenden Eigenschaften in einem anderen Array?

Linda Hamilton
Freigeben: 2024-11-02 08:50:02
Original
221 Leute haben es durchsucht

How to Filter an Array of Objects Based on Matching Properties in Another Array?

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>
Nach dem Login kopieren

Ausgabe

[
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" }
]
Nach dem Login kopieren

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!

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