Maison > interface Web > js tutoriel > Comment copier en profondeur un tableau d'objets interconnectés en JavaScript ?

Comment copier en profondeur un tableau d'objets interconnectés en JavaScript ?

Mary-Kate Olsen
Libérer: 2024-12-11 19:51:14
original
197 Les gens l'ont consulté

How to Best Deep Copy an Array of Interconnected Objects in JavaScript?

Copie d'un tableau d'objets interconnectés

Lorsque vous travaillez avec des structures de données complexes, telles que des tableaux d'objets avec des références à d'autres objets dans le même tableau, créez une véritable copie complète peut être un défi. Explorons différentes approches :

Création d'une copie profonde avec structuredClone

La solution moderne pour la copie profonde utilise structuredClone() :

array2 = structuredClone(array1);
Copier après la connexion

Cette méthode prend en charge un large éventail de types de données et est pris en charge par la plupart des navigateurs.

Création d'une copie approfondie avec JSON.parse

Pour les objets avec un contenu sérialisable JSON, une solution simple sur une seule ligne est :

let clonedArray = JSON.parse(JSON.stringify(nodesArray))
Copier après la connexion

Cependant, il présente des limites avec un contenu non sérialisable et des problèmes de performances par rapport aux autres méthodes.

Création d'une copie profonde avec l'opérateur de propagation

Si votre tableau contient des objets peu profonds, l'opérateur de propagation combiné with .map() peut être utilisé pour une copie approfondie rapide et efficace :

clonedArray = nodesArray.map(a => ({...a}));
Copier après la connexion

Cette méthode surpasse considérablement JSON.parse.

Considérations

  • Performances : Les performances de la copie profonde peuvent varier en fonction de la taille et de la complexité de vos structures de données. Il est recommandé d'évaluer différentes approches.
  • Compatibilité : structuredClone() nécessite une version de navigateur relativement nouvelle. Si la compatibilité pose problème, utilisez des méthodes alternatives.
  • Sérialisation ou clonage : Si vos objets doivent être envoyés sur le réseau, vous pouvez envisager la sérialisation au lieu du clonage.

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