Maison >interface Web >js tutoriel >Comment puis-je fusionner efficacement des objets JavaScript en fonction d'un champ d'identification ?

Comment puis-je fusionner efficacement des objets JavaScript en fonction d'un champ d'identification ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-04 05:23:10523parcourir

How Can I Efficiently Merge JavaScript Objects Based on an ID Field?

Fusionner des objets en JavaScript en fonction du champ d'identification

La combinaison de données de plusieurs tableaux est une tâche courante dans le développement JavaScript. Lorsqu'il s'agit de tableaux contenant des objets, il devient nécessaire de les fusionner en fonction d'un champ spécifique, tel que le champ "id".

Pour fusionner des tableaux d'objets en fonction du champ "id", une approche puissante utilisant l'opérateur de propagation ES6 peut être utilisé :

const a3 = a1.map((t1) => ({
  ...t1,
  ...a2.find((t2) => t2.id === t1.id),
}));

Dans cet extrait :

  • a1 et a2 représentent les tableaux d'entrée à fusionner.
  • La méthode map() parcourt chaque élément de a1.
  • Pour chaque élément t1 de a1, une fonction de flèche anonyme est exécutée.
  • Dans le fonction de flèche, l'opérateur de propagation (...) est utilisé pour créer un nouvel objet.
  • Le premier ensemble de points fusionne les propriétés de t1, en conservant l'original valeurs.
  • Le deuxième ensemble de points fusionne les propriétés d'un élément trouvé dans a2 qui a le même "id" que t1. La méthode find() recherche une correspondance dans a2.
  • Le tableau a3 résultant contient les objets fusionnés.

En utilisant cette approche, la propriété "count" est ajoutée à l'existant " name" propriété de chaque objet du tableau fusionné a3. Cette technique peut être étendue pour fusionner des objets en fonction de n'importe quel champ souhaité, offrant ainsi un moyen concis et efficace de combiner des données en JavaScript.

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