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

Comment fusionner des objets JavaScript par ID ?

Linda Hamilton
Libérer: 2024-12-04 22:47:15
original
420 Les gens l'ont consulté

How to Merge JavaScript Objects by ID?

Fusionner des objets par identifiant en JavaScript

En JavaScript, les objets peuvent être efficacement fusionnés pour combiner des données provenant de plusieurs sources. Lorsqu'il s'agit de tableaux d'objets, un défi courant consiste à fusionner des objets par un champ spécifique, souvent appelé identifiant.

Par exemple, étant donné les tableaux suivants :

var a1 = [{ id: 1, name: "test"}, { id: 2, name: "test2"}];
var a2 = [{ id: 1, count: "1"}, {id: 2, count: "2"}];
Copier après la connexion

nous souhaitez les combiner en fonction du champ 'id', ce qui donne le résultat suivant :

var a3 = [{ id: 1, name: "test", count: "1"}, { id: 2, name: "test2", count: "2"}];
Copier après la connexion

Solution :

Une solution concise et efficace dans ES6 consiste à utiliser la fonction de carte native :

const a3 = a1.map(t1 => ({...t1, ...a2.find(t2 => t2.id === t1.id)}));
Copier après la connexion

Ici , nous parcourons chaque objet t1 dans a1 et créons un nouvel objet. À l'aide de l'opérateur de propagation (...), nous répartissons les propriétés de t1 dans le nouvel objet.

Pour ajouter les propriétés de l'objet correspondant dans a2, nous utilisons la méthode find pour localiser l'objet avec le ' correspondant identifiant'. Nous répartissons ensuite les propriétés de cet objet trouvé dans le nouvel objet.

Cette approche combine élégamment les données des deux tableaux, produisant le résultat souhaité. Il est également extensible pour gérer des scénarios plus complexes de manière transparente.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal