Maison >interface Web >js tutoriel >Comment puis-je fusionner efficacement des objets JavaScript par ID à l'aide d'ES6 ?

Comment puis-je fusionner efficacement des objets JavaScript par ID à l'aide d'ES6 ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-12 14:55:14756parcourir

How Can I Efficiently Merge JavaScript Objects by ID Using ES6?

Fusionner des objets JavaScript par ID : un guide complet

La fusion d'objets par un identifiant (id) est une tâche courante dans la programmation JavaScript, en particulier lors de la combinaison de données provenant de différentes sources. Ce guide présentera une solution efficace utilisant une syntaxe ES6 concise.

Solution :

Pour fusionner deux tableaux d'objets en fonction du champ id, nous pouvons utiliser ce qui suit approche :

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

Explication :

  • La méthode map() parcourt le premier tableau (a1).
  • Pour chaque objet t1 dans a1, nous créons un nouvel objet en utilisant l'opérateur spread (...) pour copier ses propriétés.
  • Nous utilisons find() sur le deuxième tableau (a2) pour rechercher un objet avec un identifiant correspondant à t1.
  • Les propriétés de l'objet trouvé sont ensuite copiées dans le nouvel objet à l'aide de l'opérateur de propagation.

Exemple Utilisation :

Considérez les exemples de tableaux fournis dans le question :

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

L'application de la solution ci-dessus produira le tableau fusionné souhaité :

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

Avantages :

  • Concis et code lisible.
  • Utilisation efficace de l'opérateur de propagation ES6 pour l'objet fusion.
  • Gère les propriétés existantes et manquantes dans les objets fusionnés.

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