Plusieurs méthodes d'implémentation de copie profonde dans JS

1. Utiliser la conversion JSON

C'est le moyen le plus simple.

JSON.parse(JSON.stringify(obj))

2. Utilisez la récursivité

L'objet est parcouru de manière récursive et la valeur de chaque propriété est copiée. Besoin de gérer le cas où l'objet copié est un type valeur et le cas où la valeur de la propriété contient un objet. Il est à noter que pour éviter que des références circulaires ne provoquent des boucles infinies, il est nécessaire d'enregistrer les objets qui ont été parcourus.

const deepClone = obj => {
    
    
  if (typeof obj !== 'object' || obj === null) {
    
    
    return obj;
  }
  let result = Array.isArray(obj) ? [] : {
    
    };
  for (let key in obj) {
    
    
    if (obj.hasOwnProperty(key)) {
    
    
      result[key] = deepClone(obj[key]);
    }
  }
  return result;
}

3. Avec l'aide de plug-ins

Lodash

LodashIl s'agit d'une bibliothèque d'utilitaires cohérente, modulaire et performante JavaScript.

npm i --save lodash
import {
    
    cloneDeep} from 'lodash';
const obj1 = {
    
    a: {
    
    b: 2}};
const obj2 = cloneDeep(obj1);

FIN

Je suppose que tu aimes

Origine blog.csdn.net/m0_53808238/article/details/130903197
conseillé
Classement