jquery合并两个对象

如何将jquery对象合并在一起

我有

{ "merchantcontract":"Ready Reserve Foods 10104.01", "merchantcontractid":"c4253769-5a57-e111-b935-00155d010302", "smi_transactiondate":"\/Date(1332140400000)\/", "smi_glamount2":15.2600, "smi_transactionclass":180870001, "smi_transactionclassname":"Residual Agent Commission", "smi_contractprodcutidname":"Traditional", "smi_agentid":"1d3f44ee-afc3-e011-addf-a4badb1ddef5", "smi_primaryagentid":"1d3f44ee-afc3-e011-addf-a4badb1ddef5" }, { "merchantcontract":"Ready Reserve Foods 10104.01", "merchantcontractid":"c4253769-5a57-e111-b935-00155d010302", "smi_transactiondate":"\/Date(1332140400000)\/", "smi_glamount2":2.6000, "smi_transactionclass":180870001, "smi_transactionclassname":"Residual Agent Commission", "smi_contractprodcutidname":"Traditional", "smi_agentid":"1d3f44ee-afc3-e011-addf-a4badb1ddef5", "smi_primaryagentid":"1d3f44ee-afc3-e011-addf-a4badb1ddef5" } 

我想拥有

  { "merchantcontract":"Ready Reserve Foods 10104.01", "merchantcontractid":"c4253769-5a57-e111-b935-00155d010302", "smi_transactiondate":"\/Date(1332140400000)\/", "smi_glamount2":15.2600, "smi_transactionclass":180870001, "smi_transactionclassname":"Residual Agent Commission", "smi_contractprodcutidname":"Traditional", "smi_agentid":"1d3f44ee-afc3-e011-addf-a4badb1ddef5", "smi_primaryagentid":"1d3f44ee-afc3-e011-addf-a4badb1ddef5" }, { "merchantcontract":"Ready Reserve Foods 10104.01", "merchantcontractid":"c4253769-5a57-e111-b935-00155d010302", "smi_transactiondate":"\/Date(1332140400000)\/", "smi_glamount2":2.6000, "smi_transactionclass":180870001, "smi_transactionclassname":"Residual Agent Commission", "smi_contractprodcutidname":"Traditional", "smi_agentid":"1d3f44ee-afc3-e011-addf-a4badb1ddef5", "smi_primaryagentid":"1d3f44ee-afc3-e011-addf-a4badb1ddef5" } {"merchantcontract":"Ready Reserve Foods 10104.01"{ "merchantcontractid":"c4253769-5a57-e111-b935-00155d010302", "smi_transactiondate":"\/Date(1332140400000)\/", "smi_glamount2":15.2600, "smi_transactionclass":180870001, "smi_transactionclassname":"Residual Agent Commission", "smi_contractprodcutidname":"Traditional", "smi_agentid":"1d3f44ee-afc3-e011-addf-a4badb1ddef5", "smi_primaryagentid":"1d3f44ee-afc3-e011-addf-a4badb1ddef5" }, { "merchantcontractid":"c4253769-5a57-e111-b935-00155d010302", "smi_transactiondate":"\/Date(1332140400000)\/", "smi_glamount2":2.6000, "smi_transactionclass":180870001, "smi_transactionclassname":"Residual Agent Commission", "smi_contractprodcutidname":"Traditional", "smi_agentid":"1d3f44ee-afc3-e011-addf-a4badb1ddef5", "smi_primaryagentid":"1d3f44ee-afc3-e011-addf-a4badb1ddef5" } } 

所以这两个对象都在一个对象下。 我可能有两个以上的对象。

在jquery中使用每个对象创建对象。

我不知道如何开始这个。

jQuery的$ .extend会做你想要的。

 //merging two objects into new object var new_object = $.extend({}, object1, object2); //merge object2 into object1 $.extend(object1, object2); 
 anObj={'propone':'1', 'proptwo':'2'}; anotherObj={'propel':'11', 'proptlv':'12'}; var opts = {}; $.extend(opts, anObj, anotherObj, { bar: "baz", thing: "foo" }); console.log(opts); 

如果您希望以递归方式合并它们, $ .extend会提供deep的参数。 如果deep=true则合并递归。 上面的一个例子,

 // Initialize two objects. var json1 = { "a": { "a1": "value1", "a2": "value2" }}; var json2 = { "a": { "a3": "value3" }}; // Merge them recursively. var newJson = $.extend(true, {}, json1, json2); // Test it. if (newJson.a.a1 && newJson.a.a3) { console.log("Success"); } 

你能把它们放在一个arrays中吗?

 var myObjects = []; 

并在您创建它们的每个地方添加:

 myObjects.push(newObject); 

如果要更新现有对象,请使用:

 $.extend(obj1, obj2); //update obj1 and put all obj2 values in it. 

$ .extend将更改现有对象的值

要创建作为两个对象之和的新第三个对象,可以使用此函数

 function merger_objects(obj1,obj2){ $.each(obj2, function(key, value) { obj1[key] = value; }); return obj1; } 

 var fruit = {apple:"sweet",graps:"bitter"} var vege = {cucamber:"bitter",letuce:"bitter"} var fruit_and_vege = merger_objects(fruit,vege); //returns {apple:"sweet",graps:"bitter",cucamber:"bitter",letuce:"bitter"}