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

Spiegazione dettagliata del metodo di fusione dei valori di Object in JavaScript

Premessa:Nel lavoro di sviluppo quotidiano, potremmo incontrare la copia di tutti i valori degli oggetti in JavaScript, o potrebbe essere un problema di fusione delle impostazioni durante la revisione di un'applicazione sviluppata con Electron. Questo articolo fornirà una breve descrizione della soluzione.

Introduzione: ad esempio, se abbiamo obj1, obj2, dobbiamo copiare tutti i valori con la stessa profondità dei campi in obj1 a obj2, mantenendo invariata la struttura dei campi di obj2. Basta chiamare questo metodo (scritto in stile ES6).

Codice:

/**
     * Copia i dati da src a dist, mantenendo la struttura di 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]
          // Verifica se è un oggetto, se lo è continua a esplorare, se non lo è inizia l'assegnazione o ignora
          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)){
            // Se i dati di origine esistono e il tipo è consistente, inizia l'assegnazione
            dist[key] = src[key]
          }
        )
      }
    },

Questo è tutto il contenuto dell'articolo, speriamo che sia utile per il tuo studio e che tu sostenga fortemente la guida a urla.

Dichiarazione: il contenuto di questo articolo è stato raccolto da Internet, di proprietà del rispettivo autore. Il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, il sito web non detiene i diritti di proprietà, non ha sottoposto il contenuto a editing umano e non assume responsabilità legali correlate. Se trovi contenuti sospetti di violazione del copyright, invia un'email a notice#oldtoolbag.com (sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata, il sito eliminerà immediatamente il contenuto sospetto di violazione del copyright.

Ti potrebbe interessare