Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie filtere ich ein Array von Objekten mit Arrays basierend auf verschachtelten Werten?

DDD
Freigeben: 2024-10-29 03:08:02
Original
165 Leute haben es durchsucht

How to Filter an Array of Objects with Arrays Based on Nested Value?

Array von Objekten mit Arrays basierend auf verschachtelten Werten filtern

Frage: Wie filtere ich ein Array von Objekten basierend auf einem verschachtelten Wert?

Eingabe:

<code class="javascript">let arrayOfElements = [
    {
        "name": "a",
        "subElements": [
            {"surname": 1},
            {"surname": 2}
        ]
    },
    {
        "name": "b",
        "subElements": [
            {"surname": 3},
            {"surname": 1}
        ]
    },
    {
        "name": "c",
        "subElements": [
            {"surname": 2},
            {"surname": 5}
        ]
    }
];</code>
Nach dem Login kopieren

Gewünschte Ausgabe:

<code class="javascript">let filteredArray = [
    {
        "name": "a",
        "subElements": [
            {"surname": 1}
        ]
    },
    {
        "name": "b",
        "subElements": [
            {"surname": 1}
        ]
    }
];</code>
Nach dem Login kopieren

Erster Versuch:

<code class="javascript">let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));</code>
Nach dem Login kopieren

Problem: Dieser Ansatz gibt Objekte mit allen Nachnamen zurück, anstatt sie wegzuschneiden.

Lösung:

<code class="javascript">arrayOfElements.map((element) => {
    return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)}
})</code>
Nach dem Login kopieren

Erklärung:

  • Dieser Ansatz verwendet die Methode map(), um über das arrayOfElements zu iterieren.
  • Für jedes Element werden seine Eigenschaften in a verteilt neues Objekt.
  • Dann wird filter() für das subElements-Array verwendet, um nur diejenigen beizubehalten, die die Bedingung erfüllen (Nachname === 1).
  • Die gefilterten subElements werden dann verwendet, um das zu überschreiben ursprüngliches subElements-Array.

Das obige ist der detaillierte Inhalt vonWie filtere ich ein Array von Objekten mit Arrays basierend auf verschachtelten Werten?. 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
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!