admin 发表于 2018-10-16 18:20:57

【JQuery】巧用$.extend多Json合并

网上有很多方法,然而都是单独写成一个函数,看起来很复杂,又不准确。
利用jQuery的$.extend进行合并
A={"sdf":"sdf"};
B={"sdf":"sdfw"};
C={"sdfs":"sdfw"};
$.extend(B,A,C);
console.log(B)
如果ABC有共同的对象,后面的覆盖被前面的,经验证有效,在弘帝建站系统login/js/article.js应用。

/** json对象合并,也是支持Object合并的,在jqueryAPI里有说明
这里用这个方法:$.extend(),当合并json用
API:    jQuery.extend(, target, object1, )
@ param deep:true/false(是否深度复制,是:target没有的属性也复制;否:target没有的属性不复制)
@ param target:待扩展对象(在这里用做多个json合并<待合并对象>,会直接作用于target)
如果不想target改变用一个空的对象做target就可以了

var A={name:"xiaoMing"};
var B={age:23};
var C={birthday:"2013-11-12"};
var empty={};
/* 1.A没有的属性也复制
$.extend(A,B,C);//相当于$.extend(true,A,B,C);
console.log(A);
//输出 Object {name: "xiaoMing", age: 23, birthday: "2013-11-12"}*/

/* 2.A没有的属性将不会复制
$.extend(false,A,B,C);
console.log(A);
//输出 Object {name: "xiaoMing"} */

/* 3. 用空对象做target
$.extend(empty,A,B,C);
console.log(empty);
//输出 Object {name: "xiaoMing", age: 23, birthday: "2013-11-12"}*/

admin 发表于 2022-8-12 17:35:18

巧用Object.assign实现多Json合并

Object.assign(args, { act: act });

案例在Hondy.Cloud.Console.JS/Consol.js实现

admin 发表于 2022-10-13 11:22:10

多数组JS合并方法:

eval('[' + JSON.stringify(site.host.options).concat("," + gethost()) + ']');
具体参考:Hondy.Cloud.Console.Product.Site.js
页: [1]
查看完整版本: 【JQuery】巧用$.extend多Json合并