Maison > interface Web > js tutoriel > le corps du texte

Comment filtrer un tableau d'objets avec des tableaux basés sur une valeur imbriquée ?

DDD
Libérer: 2024-10-29 03:08:02
original
165 Les gens l'ont consulté

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

Filtrage d'un tableau d'objets avec des tableaux basés sur une valeur imbriquée

Question : Comment filtrer un tableau d'objets en fonction d'une valeur imbriquée ?

Entrée :

<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>
Copier après la connexion

Sortie souhaitée :

<code class="javascript">let filteredArray = [
    {
        "name": "a",
        "subElements": [
            {"surname": 1}
        ]
    },
    {
        "name": "b",
        "subElements": [
            {"surname": 1}
        ]
    }
];</code>
Copier après la connexion

Tentative initiale :

<code class="javascript">let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));</code>
Copier après la connexion

Problème :Cette approche renvoie les objets avec tous les noms de famille au lieu de les supprimer.

Solution :

<code class="javascript">arrayOfElements.map((element) => {
    return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)}
})</code>
Copier après la connexion

Explication :

  • Cette approche utilise la méthode map() pour parcourir le arrayOfElements.
  • Pour chaque élément, elle répartit ses propriétés dans un nouvel objet.
  • Il utilise ensuite filter() sur le tableau subElements pour conserver uniquement ceux qui remplissent la condition (nom === 1).
  • Les sous-éléments filtrés sont ensuite utilisés pour remplacer le Tableau de sous-éléments d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!