
Filtrer un tableau d'objets avec des tableaux de valeurs imbriquées
Filtrer un tableau d'objets en fonction d'une valeur imbriquée peut être un défi courant. Pour résoudre ce problème, examinons le violon fourni :
Tableau d'entrée :
let arrayOfElements = [
{
"name": "a",
"subElements": [
{"surname": 1},
{"surname": 2}
]
},
{
"name": "b",
"subElements": [
{"surname": 3},
{"surname": 1}
]
},
{
"name": "c",
"subElements": [
{"surname": 2},
{"surname": 5}
]
}
];Sortie souhaitée :
let filteredArray = [
{
"name": "a",
"subElements": [
{"surname": 1}
]
},
{
"name": "b",
"subElements": [
{"surname": 1}
]
}
];Approche de filtrage originale :
let filteredArray = arrayOfElements.filter((element) => element.subElements.some((subElement) => subElement.surname === 1));
Bien que cette formule filtre le tableau, elle renvoie les objets avec tous les noms de famille au lieu de les supprimer.
Amélioré Méthode de filtrage :
arrayOfElements.map((element) => {
return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)}
})Cette méthode utilise l'opérateur de propagation (...) pour créer un nouvel objet pour chaque élément du tableau. À l'intérieur du nouvel objet, la propriété subElements est filtrée pour inclure uniquement ceux avec la valeur de nom de famille souhaitée (nom === 1).
En utilisant cette approche, vous pouvez filtrer des tableaux avec des objets imbriqués arbitrairement profondément en appliquant de manière itérative le fonction map pour accéder et filtrer les données souhaitées.
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!
Comment représenter des nombres négatifs en binaire
La différence entre la charge rapide PD et la charge rapide générale
Comment optimiser les performances de Tomcat
Qu'est-ce qu'un portefeuille Bitcoin
Utilisation des commandes NTSD
propriétés du dégradé CSS3
Pourquoi la page Web de l'espace QQ ne peut-elle pas être ouverte ?
Introduction à l'emplacement du panneau de configuration Win10