0

すべてのデータ オブジェクトを 1 つに結合して、すべてチェーン化しようとしています。

var person1 = {
    hello: {
        "david": {
            "hours": "44",
            "money": "22"
        }
    }
};


var person2 = {
    world: {
        "pearce": {
            "hours": "21",
            "money": "11"
        }
    }
};

私はそれを次のようにしたい:

var mergedObjects = {
    hello: {
        "david": {
            "hours": "44",
            "money": "22"
        }
    },
    world: {
        "pearce": {
            "hours": "21",
            "money": "11"
        }
    }
};

配列でこれを行う方法は知っていますが、正しい構造を維持するJSONオブジェクトとしてjavascriptでこれを行うにはどうすればよいですか

4

3 に答える 3

1

これをチェックしてください....

答えはここにあります... 2 つの JavaScript オブジェクトのプロパティを動的にマージするにはどうすればよいですか?

JSフィドル

JS:

 function mergeRecursive(obj1, obj2) {

  for (var p in obj2) {
    try {
      // Property in destination object set; update its value.
      if ( obj2[p].constructor==Object ) {
        obj1[p] = mergeRecursive(obj1[p], obj2[p]);

      } else {
        obj1[p] = obj2[p];

      }

    } catch(e) {
      // Property in destination object not set; create it and set its value.
      obj1[p] = obj2[p];

    }
  }

  return obj1;
}

var person1 = {
    hello: {
        "david": {
            "hours": "44",
            "money": "22"
        }
    }
};


var person2 = {
    world: {
        "pearce": {
            "hours": "21",
            "money": "11"
        }
    }
};

console.log(mergeRecursive(person1, person2));
于 2013-11-13T05:40:21.640 に答える
0

これは jQuery で簡単に実行できます。

var person1 = {
    hello: {
        "david": {
            "hours": "44",
            "money": "22"
         }
    }
};


var person2 = {
    world: {
        "pearce": {
            "hours": "21",
            "money": "11"
        }
    }
};

var mergedObjects = $.extend({}, person1, person2);

console.dir(mergedObjects);
于 2013-11-13T06:07:24.000 に答える