Heim >Web-Frontend >js-Tutorial >Wie filtere ich verschachtelte Arrays in Objekten basierend auf einem bestimmten Wert?

Wie filtere ich verschachtelte Arrays in Objekten basierend auf einem bestimmten Wert?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-29 10:14:29328Durchsuche

How to Filter Nested Arrays in Objects Based on a Specific Value?

Array von Objekten mit Arrays basierend auf verschachtelten Werten filtern

Sie versuchen, ein Array von Objekten basierend auf einem darin verschachtelten Wert zu filtern Objekte. Das Ziel besteht darin, ein neues Array zu erstellen, das nur die Objekte mit einem bestimmten Wert für eine verschachtelte Eigenschaft enthält.

Um dies zu erreichen, haben Sie die folgende Formel verwendet:

let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));

Diese Formel Filtert die Objekte aus dem ursprünglichen Array heraus, die mindestens ein Unterelement mit einer Nachnameneigenschaft von 1 haben. Die Ausgabe entspricht jedoch nicht ganz Ihren Erwartungen. Anstatt die Unterelemente zu entfernen, die nicht der Filterbedingung entsprechen, werden Objekte mit allen Unterelementen zurückgegeben, einschließlich derjenigen, die nicht übereinstimmen.

Um die Filterung zu verbessern, können Sie eine Zuordnungsfunktion verwenden anstelle einer Filterfunktion. Auf diese Weise können Sie ein neues Array erstellen, indem Sie jedes Element im ursprünglichen Array transformieren. Das transformierte Element enthält nur die Unterelemente, die der Filterbedingung entsprechen.

Hier ist eine verbesserte Formel mit der Zuordnungsfunktion:

let filteredArray = arrayOfElements.map((element) => {
  return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)}
})

In dieser verbesserten Formel:

  • Die Map-Funktion iteriert über jedes Element im arrayOfElements-Array.
  • Für jedes Element erstellt sie ein neues Objekt, das die Eigenschaften des ursprünglichen Elements und ein gefiltertes subElements-Array enthält.
  • Das Die Filterfunktion wird auf das Array subElements angewendet, um alle Unterelemente zu entfernen, die nicht der Filterbedingung entsprechen, die in diesem Fall subElement.surname === 1 ist.
  • Der Spread-Operator (...) ist Wird verwendet, um ein neues Objekt zu erstellen, das die Eigenschaften des ursprünglichen Elements mit dem gefilterten subElements-Array kombiniert.

Diese verbesserte Formel gibt ein Array zurück, das nur die Objekte enthält, die mindestens ein Unterelement mit einem Nachnamen haben Eigenschaft gleich 1, und jedes Objekt enthält nur die passenden Unterelemente.

Das obige ist der detaillierte Inhalt vonWie filtere ich verschachtelte Arrays in Objekten basierend auf einem bestimmten Wert?. 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