Maison > interface Web > js tutoriel > Comment cloner efficacement des tableaux d'objets en JavaScript ?

Comment cloner efficacement des tableaux d'objets en JavaScript ?

Susan Sarandon
Libérer: 2024-12-18 15:21:10
original
781 Les gens l'ont consulté

How to Effectively Clone Arrays of Objects in JavaScript?

Clonage de tableaux d'objets en JavaScript

Structure des tableaux

Lors du clonage de tableaux d'objets , il est crucial de considérer la structure des objets au sein du tableau et leurs relations. Si les objets font référence à d'autres objets dans le tableau, une copie superficielle ne fera que répliquer les références, plutôt que de créer de nouveaux objets.

Solutions disponibles

Il existe plusieurs approches pour clonage de tableaux d'objets en JavaScript, en fonction des exigences spécifiques :

1. StructuredClone (ES2021)

La méthode structuréClone est le moyen le plus moderne et le plus efficace de cloner des objets complexes. Il crée une copie complète, préservant la structure et les relations au sein du tableau d'origine.

const clonedArray = structuredClone(originalArray);
Copier après la connexion

2. JSON.parse

Si les objets sont sérialisables en JSON, vous pouvez les convertir en chaîne à l'aide de JSON.stringify, puis les analyser en objets à l'aide de JSON.parse. Cette approche ne fonctionne pas pour les objets non sérialisables.

const clonedArray = JSON.parse(JSON.stringify(originalArray));
Copier après la connexion

3. Opérateur de propagation et Array.map

Pour le clonage d'objets superficiel, vous pouvez utiliser l'opérateur de propagation... dans Array.map. Cette approche recrée les objets mais ne crée pas de nouvelles références. C'est efficace et applicable uniquement aux objets peu profonds.

const clonedArray = originalArray.map(obj => ({ ...obj }));
Copier après la connexion

4. Copie approfondie de jQuery

Bien que la méthode d'extension de jQuery puisse être utilisée pour une copie superficielle, une copie approfondie nécessite extend(true, {}, originalArray). Cependant, cette approche peut rencontrer des problèmes de récursion.

Considérations sur les performances

Les performances des méthodes de clonage varient en fonction de la complexité et de la structure des objets. structuredClone et l'opérateur de propagation sont généralement plus efficaces. Les résultats de référence pour l'exemple de tableau dans l'annexe fournie montrent que l'opérateur de propagation est nettement plus rapide que JSON.stringify, ce qui le rend idéal pour le clonage d'objets superficiel.

Conclusion

Le le choix de la méthode de clonage dépend des exigences spécifiques de l’application. Pour le clonage profond de structures d'objets complexes, structuredClone est recommandé. Pour le clonage superficiel d'objets sérialisables, JSON.stringify ou l'approche de l'opérateur de propagation peut être utilisée.

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