Heim > Web-Frontend > js-Tutorial > Hauptteil

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

Susan Sarandon
Freigeben: 2024-10-30 00:34:28
Original
309 Leute haben es durchsucht

How can I filter an array of objects based on matching properties in another array?

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"
  }
];
Nach dem Login kopieren

Das erwartete Ergebnis ist:

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

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

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 entsprechen

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

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!