filtern ein Array von Objekten mit Arrays, die aufgeschriebenen Wert basieren. Objekte. Das Ziel ist es, 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 -Element mit einer Nachnameneigenschaft entspricht 1. Die Ausgabe ist jedoch nicht ganz das, was Sie erwartet haben. Anstatt die Unterelemente zu entfernen, die nicht mit der Filterbedingung übereinstimmen, gibt es Objekte mit allen Unterelementen zurück, einschließlich derer, 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 mit der Filterbedingung übereinstimmen. return {... Element, Unterelemente: Element.Subelements.filter ((Subelement) => subelement.sUnName === 1)} })
let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));in dieser verbesserten Formel:
Die Kartenfunktion iteriert über jedes Element im Array -Array. Enthält die Eigenschaften des ursprünglichen Elements und ein gefiltertes Unterelement-Array.
Die Filterfunktion wird auf das Subelement-Array angewendet, um Subelemente zu entfernen, die nicht mit der Filterbedingung übereinstimmen. Dieser Fall.
let filteredArray = arrayOfElements.map((element) => { return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)} })
Diese verbesserte Formel wird zurückgegeben Ein Array, das nur die Objekte enthält, die mindestens eine Unterelement mit einer Nachnameneigenschaft haben, und jedes Objekt hat nur die passenden Unterelemente enthalten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3