Maison >interface Web >js tutoriel >Comment fusionner efficacement deux tableaux d'objets basés sur une clé sans itérer les clés d'objet ?

Comment fusionner efficacement deux tableaux d'objets basés sur une clé sans itérer les clés d'objet ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-29 02:43:14360parcourir

How to Efficiently Merge Two Object Arrays Based on a Key Without Iterating Object Keys?

Fusionner des tableaux d'objets basés sur une clé sans itérer sur les clés d'objet

Considérons le scénario d'avoir deux tableaux d'objets :

const array1 = [
  { id: "abdc4051", date: "2017-01-24" },
  { id: "abdc4052", date: "2017-01-22" }
];

const array2 = [
  { id: "abdc4051", name: "ab" },
  { id: "abdc4052", name: "abc" }
];

Notre objectif consiste à fusionner ces tableaux en fonction de la propriété id, ce qui donne un tableau qui combine les propriétés des deux objets :

[
  { id: "abdc4051", date: "2017-01-24", name: "ab" },
  { id: "abdc4052", date: "2017-01-22", name: "abc" }
]

Pour y parvenir efficacement sans utiliser de boucle sur les clés d'objet, nous pouvons utiliser la fonction map() :

const mergedArray = array1.map((item, index) => Object.assign({}, item, array2[index]));

Cette approche utilise Object.assign() méthode pour fusionner les propriétés des objets correspondants des deux tableaux dans un nouvel objet combiné, qui est ensuite accumulé dans le mergedArray.

Le tableau fusionné résultant satisfait à notre exigence de combiner les propriétés basées sur sur la clé d'identification partagée, sans avoir besoin de boucles itératives sur les clés d'objet.

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