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"}];
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"}];
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)}));
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!