Heim > Web-Frontend > js-Tutorial > Hauptteil

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

DDD
Freigeben: 2024-10-30 23:46:30
Original
829 Leute haben es durchsucht

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

Array von Objekten mit Arrays verschachtelter Werte filtern

Das Filtern eines Arrays von Objekten basierend auf einem verschachtelten Wert kann eine häufige Herausforderung sein. Um dies zu beheben, untersuchen wir die bereitgestellte Geige:

Eingabearray:

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

Gewünschte Ausgabe:

let filteredArray = [
    {
        "name": "a",
        "subElements": [
            {"surname": 1}
        ]
    },
    {
        "name": "b",
        "subElements": [
            {"surname": 1}
        ]
    }
];
Nach dem Login kopieren

Ursprünglicher Filteransatz:

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

Diese Formel filtert zwar das Array, gibt jedoch Objekte mit allen Nachnamen zurück, anstatt sie zu entfernen.

Verbessert Filtermethode:

arrayOfElements.map((element) => {
  return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)}
})
Nach dem Login kopieren

Diese Methode verwendet den Spread-Operator (...), um für jedes Element im Array ein neues Objekt zu erstellen. Innerhalb des neuen Objekts wird die subElements-Eigenschaft gefiltert, um nur diejenigen mit dem gewünschten Nachnamenwert (Nachname === 1) einzuschließen.

Mit diesem Ansatz können Sie Arrays mit beliebig tief verschachtelten Objekten filtern, indem Sie iterativ anwenden Kartenfunktion zum Zugriff und Filtern der gewünschten Daten.

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