ホームページ >ウェブフロントエンド >jsチュートリアル >JSオブジェクト値をマージする方法

JSオブジェクト値をマージする方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-04-14 09:14:372380ブラウズ

今回は、JSのObject値を結合する方法と、JSのObject値を結合する際の注意点を紹介します。実際のケースを見てみましょう。

前書き: 日々の開発作業では、js の object 内のすべての値をコピーすることに遭遇したり、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]
          }
        })
      }
    },

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

推奨書籍:

JS 擬似配列の使用の詳細な説明

JS はクライアントの種類をどのように決定するか

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

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