Heim >Web-Frontend >js-Tutorial >Wie filtere ich ein Array von Objekten mit Arrays basierend auf verschachtelten Werten?
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>
Gewünschte Ausgabe:
<code class="javascript">let filteredArray = [ { "name": "a", "subElements": [ {"surname": 1} ] }, { "name": "b", "subElements": [ {"surname": 1} ] } ];</code>
Erster Versuch:
<code class="javascript">let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));</code>
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>
Erklärung:
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!