Maison  >  Article  >  interface Web  >  Comment filtrer un tableau d'objets avec des tableaux imbriqués en fonction d'une valeur imbriquée spécifique ?

Comment filtrer un tableau d'objets avec des tableaux imbriqués en fonction d'une valeur imbriquée spécifique ?

DDD
DDDoriginal
2024-10-31 12:40:02739parcourir

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

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

En programmation, il est souvent nécessaire de filtrer des tableaux en fonction de critères spécifiques. Lorsqu'il s'agit de structures d'objets complexes avec des tableaux imbriqués, le processus de filtrage peut devenir plus difficile. Cette question explore un problème dans lequel un développeur doit filtrer un tableau d'objets en fonction de la valeur d'un objet imbriqué.

La transformation souhaitée consiste à filtrer tous les éléments des sous-tableaux qui ne correspondent pas à une valeur spécifique. Le tableau d'entrée contient des objets avec une propriété "name" et un tableau "subElements", chacun contenant des objets avec une propriété "nom". L'objectif est de supprimer tous les sous-éléments où « nom » n'est pas égal à 1.

Dans un premier temps, le développeur a tenté la logique de filtrage suivante :

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

Alors que cette approche identifiait les objets avec au moins un sous-élément valide, il n'a pas réussi à supprimer les sous-éléments non valides. Pour résoudre ce problème, nous pouvons utiliser un mécanisme de filtrage plus complet :

arrayOfElements.map((element) => {
  return {...element, subElements: element.subElements.filter((subElement) => subElement.surname === 1)}
})

Ce code mis à jour utilise la méthode "map" pour parcourir le tableau. Il préserve les objets d'origine et crée de nouveaux objets avec des tableaux de "sous-éléments" modifiés. La méthode "filtre" est utilisée pour supprimer les sous-éléments qui ne correspondent pas à la valeur "nom de famille" de 1.

En incorporant cette technique de filtrage, le développeur peut supprimer efficacement les sous-éléments non valides et réaliser la transformation souhaitée. du tableau d'objets.

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!

Déclaration:
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