Heim  >  Artikel  >  Web-Frontend  >  Wie filtere ich ein Array von Objekten basierend auf einem anderen Array von Objekten?

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

DDD
DDDOriginal
2024-11-02 03:34:30482Durchsuche

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

Array von Objekten basierend auf einem anderen Array von Objekten filtern

Problem:

Gegeben zwei Bei Arrays von Objekten besteht das Ziel darin, das erste Array anhand eines bestimmten Kriteriums zu filtern und dabei das zweite Array als Referenz zu verwenden. Konkret möchten wir das erste Array so filtern, dass es nur die Objekte enthält, die mit bestimmten Eigenschaften (Benutzer-ID und Projekt-ID) mit Objekten im zweiten Array übereinstimmen.

Lösung:

Unter Verwendung des Filters und einiger Methoden im Array können wir die folgende Lösung erreichen:

  1. Erste Array-Iteration:
    Verwenden Sie die Filtermethode für das erste Array, über das iteriert werden soll
  2. Übereinstimmungsprüfung:
    Verwenden Sie innerhalb der Filter-Callback-Funktion die Methode some für das zweite Array, um zu überprüfen, ob es ein Objekt gibt, das mit dem aktuellen Element des ersten übereinstimmt Array basierend auf den Eigenschaften userid und projectid.
  3. Filterung:
    Wenn eine Übereinstimmung vorliegt, gibt die Funktion „true“ zurück, wodurch das Element im gefilterten Ergebnisarray beibehalten wird.

Beispiel:

<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>

Erwartetes Ergebnis:

<code class="js">[
  { userid: "101", projectid: "11", rowid: "1" },
  { userid: "102", projectid: "12", rowid: "2" }
]</code>

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

Stellungnahme:
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