请选择 进入手机版 | 继续访问电脑版

弘帝企业智能建站系统交流平台

 找回密码
 立即注册
查看: 2698|回复: 2

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

[复制链接]
发表于 2018-10-16 18:20:57 | 显示全部楼层 |阅读模式
网上有很多方法,然而都是单独写成一个函数,看起来很复杂,又不准确。
利用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([deep], target, object1, [objectN])
@ 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"}  */
回复

使用道具 举报

 楼主| 发表于 2022-8-12 17:35:18 | 显示全部楼层

巧用Object.assign实现多Json合并

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

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

回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-13 11:22:10 | 显示全部楼层

多数组JS合并方法:

eval('[' + JSON.stringify(site.host.options).concat("," + gethost()) + ']');
具体参考:Hondy.Cloud.Console.Product.Site.js
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|弘帝企业智能建站系统 ( 皖ICP备07503252号 )

GMT+8, 2024-4-19 08:16 , Processed in 0.061222 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表