Maison >interface Web >js tutoriel >Comment fusionner efficacement des objets JavaScript par ID ?

Comment fusionner efficacement des objets JavaScript par ID ?

DDD
DDDoriginal
2024-11-29 20:22:15641parcourir

How to Efficiently Merge JavaScript Objects by ID?

Fusionner des objets JavaScript par identifiant

Question :

Comment puis-je fusionner efficacement deux objets JavaScript tableaux d'objets basés sur une propriété "id" commune, ajoutant des données supplémentaires du deuxième tableau au en premier ?

Exemple :

var a1 = [{ id: 1, name: "test" }, { id: 2, name: "test2" }]
var a2 = [{ id: 1, count: "1" }, { id: 2, count: "2" }]

Sortie souhaitée :

var a3 = [{ id: 1, name: "test", count: "1" }, { id: 2, name: "test2", count: "2" }]

Solution :

En utilisant ES6, vous pouvez y parvenir avec un résumé concis solution :

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

Cette solution exploite les méthodes map() et find() :

  • map() : itère sur chaque élément de a1 et crée un nouvel objet.
  • find() : Recherche l'objet dans a2 avec le même "id" que l'élément actuel dans a1.
  • Spread Operator ( ... ) : Combine les propriétés de l'élément actuel dans a1 avec les propriétés de l'élément correspondant dans a2.

Cette méthode fusionne efficacement les objets dans a1 et a2 en fonction de la propriété "id", en ajoutant toutes les propriétés supplémentaires de a2 aux objets résultants dans a3.

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