ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptでオブジェクトの値をマージする方法について

JavaScriptでオブジェクトの値をマージする方法について

亚连
亚连オリジナル
2018-06-19 09:48:201512ブラウズ

この記事では主に JavaScript でのオブジェクト値のマージ方法を詳しく紹介します。これには特定の参照値があります。興味のある方は参考にしてください。

前書き: 日々の開発作業では、js のすべての値のコピーに遭遇することがあります。オブジェクト内の は、電子開発によるクライアントの改訂中に直面した設定マージの問題である可能性もあります。そこでこの記事では、この問題に対する簡単な解決策を紹介します。

はじめに: たとえば、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]
          }
        })
      }

    },

上記は私が皆さんのためにまとめたもので、将来皆さんのお役に立てれば幸いです。

関連記事:

JavaScriptを使用して電卓を実装する方法

Angularを使用してテーブルフィルタリングを実装する方法

Vue.jsが無限スクロールロードを実装する方法について

Chrome Firefoxにはデバッグツールが付属しています(詳細 チュートリアル)

JSを使用したAjaxリクエスト関数の書き方

vue-cli+webpackを使用してvueを構築する方法

JSを使用して複数のスクロールバーを制御して同期スクロールする方法

Webpackフレームワーク (コアテクノロジーをマスター)

webpack+expressを使用してマルチページサイト開発を実現する方法

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

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