如何合并2个对象,使两个对象属性都完好无损 - Jquery

时间:2015-06-06 03:05:39

标签: jquery

我试图合并/连接2个对象,这是我目前的方式:

var mergeObj = {};
var obj1 = { name: 'abd', id: 5454756, color: 'red' }
var obj2 = { name: 'abc1', id:387589, color: 'blue'}

现在如果我合并它应该是:

Object {obj1: Object, obj2: Object}

但是我尝试了以下内容:

mergeObj = obj1.merge(obj2);

它合并到一个对象,这不是我正在寻找的。我希望以这样的方式合并,即最终对象将包含2个字段:obj1obj2

例如:

enter image description here

有可能吗?有什么想法吗?

感谢〜

5 个答案:

答案 0 :(得分:2)

var obj1 = { name: 'abd', id: 5454756, color: 'red' }
var obj2 = { name: 'abc1', id:387589, color: 'blue'}
var mergeObj = { obj1: obj1, obj2: obj2 };

在javascript中,一切都是对象,属性可以是任何对象,因此您只需要创建一个新对象,并将其属性设置为原始对象。

答案 1 :(得分:1)

试试这个,

$(document).ready(function() {
  var obj1 = {
    name1: 'abd',
    id: 5454756,
    color: 'red'
  }
  var obj2 = {
    name: 'abc1',
    id: 387589,
    color: 'blue'
  }

  $.extend(obj1, obj2);
  alert(obj2.name + "," + obj1.name);

})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 2 :(得分:1)

由于只有两个对象,你可以简单地将它们作为新对象一起添加。

var obj1 = { name: 'abd', id: 5454756, color: 'red' },
    obj2 = { name: 'abc1', id:387589, color: 'blue'},
    objs = { obj1, obj2 };

console.log(obj1, obj2, objs);

// Output:
// Object {name: "abd", id: 5454756, color: "red"}
// Object {name: "abc1", id: 387589, color: "blue"}
// Object {obj1: Object, obj2: Object}

http://jsfiddle.net/daCrosby/o7jf5baa/

你可以用两个以上来做,我只是说它很简单,没有任何复杂的功能或额外的库。

答案 3 :(得分:0)

此问题似乎与jquery merge two objects重复。

adeneo提供的解决方案是:

//merging two objects into new object
var new_object = $.extend({}, object1, object2);

答案 4 :(得分:0)

看一下这段代码

var mergeObj = {};

var obj1 = { name: 'abd', id: 5454756, color: 'red' }
var obj2 = { name: 'abc1', id:387589, color: 'blue'}


mergeObj.obj1=obj1;
mergeObj.obj2=obj2;
console.log(mergeObj)