ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptでのオブジェクト値の結合方法について詳しく解説

JavaScriptでのオブジェクト値の結合方法について詳しく解説

小云云
小云云オリジナル
2017-12-23 14:32:461248ブラウズ

この記事では主に JavaScript でのオブジェクト値の結合方法を詳しく紹介します。興味のある方は参考にしていただければ幸いです。

まえがき: 日々の開発作業では、jsのオブジェクトのすべての値をコピーしたり、electronでクライアントを開発し、修正時に設定のマージの問題に直面したりすることがあります。そこでこの記事では、この問題に対する簡単な解決策を紹介します。

はじめに: たとえば、obj1 と obj2 がある場合、obj2 の同じフィールドと同じ深さを持つ obj1 のすべての値を obj2 にコピーする必要があります。また、obj2 のフィールド構造を変更せずに維持する必要があります。メソッドを呼び出します (ES6 書き込みメソッドを使用)。

コード:


/**
     * 将src中的数据copy到dist中,并保留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]

          // 判断是不是对象,如果是则继续遍历,不是则开始赋值或忽略
          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)){
            // 如果源数据存在,并且类型一致,则开始赋值
            dist[key] = src[key]
          }
        })
      }

    },

関連推奨事項:

Javaの通常メソッドとオブジェクトの2つのメソッドの使用の詳細な説明

JavaScriptでのobject.extend静的メソッドの使用の詳細な説明

param属性のオブジェクトと定義

以上がJavaScriptでのオブジェクト値の結合方法について詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。