English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Explication détaillée de la méthode de fusion des valeurs Object en JavaScript

Préambule :Dans les travaux de développement quotidien, nous pourrions rencontrer le problème de copie de toutes les valeurs des objets JavaScript, ou peut-être être confrontés à des problèmes de fusion des paramètres lors de la modification de l'application développée avec Electron. Alors cet article présente une solution succincte.

Présentation : par exemple, il y a obj1, obj2Nous devons copier obj1Toutes les valeurs qui concernent obj2Copier les valeurs des champs identiques à la même profondeur dans obj2Et il faut maintenir que obj2La structure des champs reste inchangée, appeler simplement cette méthode (en utilisant ES6Écriture ).

Code :

/**
     * Copie les données de src vers dist tout en conservant la structure de dist
     * @param src
     * @param dist
     */
    copyValue(src, dist) {
      if (!src || typeof(src) !== 'object' || typeof(dist) !== 'object'){
        return ;
      }
      let keys = Object.keys(dist)
      if (keys && keys.length > 0 && isNaN(keys[0])){
        keys.forEach(key => {
          let value = dist[key]
          let srcVal = src[key]
          // Déterminer si c'est un objet, si oui, continuer à parcourir, sinon commencer à affecter ou ignorer
          if (value !== undefined && typeof(value) === 'object' && srcVal && typeof(srcVal) === 'object' && srcVal[0] === undefined){
            copyValue(srcVal, value)
          } else if (value !== undefined && srcVal && typeof(value) == typeof (srcVal)){
            // Si les données source existent et que le type est cohérent, commencer à affecter
            dist[key] = src[key]
          }
        }
      }
    },

Voici la totalité du contenu de cet article, j'espère qu'il vous aidera dans vos études, et j'espère aussi que vous soutiendrez fortement le tutoriel criant.

Déclaration : le contenu de cet article est extrait du réseau, la propriété intellectuelle appartient à ses auteurs respectifs, le contenu est apporté par les utilisateurs d'Internet de manière volontaire et auto-postée, ce site n'appartient pas à la propriété intellectuelle, n'a pas été traité par l'éditeur humain et n'assume aucune responsabilité juridique connexe. Si vous trouvez du contenu suspect de violation de droits d'auteur, veuillez envoyer un e-mail à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un e-mail pour signaler une violation, et fournir des preuves pertinentes. Une fois vérifié, ce site supprimera immédiatement le contenu suspect de violation de droits d'auteur.

Vous pourriez aussi aimer