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

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

DDD
DDDOriginal
2024-10-30 23:46:30796Durchsuche

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}
        ]
    }
];

Gewünschte Ausgabe:

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

Ursprünglicher Filteransatz:

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

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

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!

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