let modeler = {}
//比较数组是否相同
modeler.compArray = function (array1, array2) {if ((array1 && typeof array1 === "object"&& array1.constructor === Array)&& (array2 && typeof array2 === "object" && array2.constructor === Array)) {if (array1.length == array2.length) {for (var i = 0; i < array1.length; i++) {var ggg = modeler.compObj(array1[i], array2[i]);if (!ggg) {return false;}}}else {return false;}}else {throw new Error("argunment is  error ;");}return true;
};
modeler.compObj = function (obj1, obj2)//比较两个对象是否相等,不包含原形上的属性计较
{if ((obj1 && typeof obj1 === "object") && ((obj2 && typeof obj2 === "object"))) {var count1 = modeler.propertyLength(obj1);var count2 = modeler.propertyLength(obj2);if (count1 == count2) {for (var ob in obj1) {if (obj1.hasOwnProperty(ob) && obj2.hasOwnProperty(ob)) {if (obj1[ob] && obj2[ob]) {if (obj1[ob].constructor == Array && obj2[ob].constructor == Array)//如果属性是数组{if (!modeler.compArray(obj1[ob], obj2[ob])) {return false;};}else if (typeof obj1[ob] === "string" && typeof obj2[ob] === "string")//纯属性{if (obj1[ob] !== obj2[ob]) {return false;}}else if (typeof obj1[ob] === "number" && typeof obj2[ob] === "number")//纯属性{if (obj1[ob] !== obj2[ob]) {return false;}}else if (typeof obj1[ob] === "boolean" && typeof obj2[ob] === "boolean")//纯属性{if (obj1[ob] !== obj2[ob]) {return false;}}else if (typeof obj1[ob] === "object" && typeof obj2[ob] === "object")//属性是对象{if (!modeler.compObj(obj1[ob], obj2[ob])) {return false;};}else {return false;}}}else {return false;}}}else {return false;}}return true;
};
modeler.propertyLength = function (obj)//获得对象上的属性个数,不包含对象原形上的属性
{var count = 0;if (obj && typeof obj === "object") {for (var ooo in obj) {if (obj.hasOwnProperty(ooo)) {count++;}}return count;} else {throw new Error("argunment can not be null;");}};var data01 = [{ value: [{ id: 'asa', value: 'dfs' }, { abc: { abc: ['456', 123.3, { abc: [1, 23, 456] }], color: '#FFF', opacity: 0.2 } }] }];
var data02 = [{ value: [{ id: 'asa', value: 'dfs' }, { abc: { abc: ['456', 123.3, { abc: [1, 23, 456] }], opacity: 0.2, color: '#FFF', } }] }];let a = { "general": { "id": "460", "title": { "display": true, "name": "My Store", "fontFamily": "Arial", "fontSize": 30, "fontStyle": "Normal", "fontWeight": "Bold", "color": "#FFFFFF", "position": "Left" }, "subTitle": { "display": true, "name": "Enter your store header description.", "fontFamily": "Arial", "fontSize": 14, "fontStyle": "Normal", "fontWeight": "Normal", "color": "#FFFFFF", "position": "Left" }, "logo": { "display": true, "src": "", "position": "Right" }, "header_color": { "display": true, "gradientEnable": false, "pureColor": "#5B8FDB", "startColor": "#5B8FDB", "endColor": "#ACCCFC", "pureColorOpacity": 0, "startColorOpacity": 0, "endColorOpacity": 0, "orientation": "left", "header_title": { "fontFamily": "SF Pro Text", "fontSize": 16, "fontStyle": "Normal", "color": "#2B2B2B", "opacity": 0 } }, "background_color": "#3a83f2", "remarks": "App Layout 33", "version": "#051937", "create_time": "1621588418", "status": null, "publish_time": "1621588418", "author": "CMyApps Admin", "statusBar": { "barStyle": "Light" }, "tabbar": { "startColor": "#FFFFFF", "endColor": "#FFFFFF", "orientation": "downRight", "pureColor": "#FFFFFF", "gradientEnable": false }, "primary_icon": { "menu_icon_color": "#5B8FDB", "system_icon_color": "#FFFFFF" }, "general_type": "classic", "reviser": "CMyApps Admin", "update_time": "1621588418", "header": "1", "background": { "color": "#FFFFFF", "opacity": 0 }, "user_id": "151403267" }, "areas": [{ "id": "977", "gid": "460", "fixed": "fixed", "title": { "display": false, "fontFamily": "SF Pro Text", "fontSize": 22, "fontStyle": "Normal", "color": "#2b2b2b", "opacity": 0, "position": "Left", "name": "CMyApps Area", "background": { "gradientEnable": false, "startColor": "#ffffff", "startColorOpacity": 255, "endColor": "#ffffff", "endColorOpacity": 255, "orientation": "left", "pureColor": "#ffffff", "pureColorOpacity": 255 }, "src": "" }, "type": "Slideshow", "listType": { "section": "sli_show_s_a", "type": "One", "borderRadius": "1" }, "singleStyle": "Fill", "bannerLayout": "bannerLayout", "autoScroll": "autoScroll", "interval": "5", "display_pagination": "display_pagination", "gridLayout": "gridLayout", "header_color": "header_color", "background": { "gradientEnable": false, "startColor": "#ffffff", "startColorOpacity": 0, "endColor": "#ffffff", "endColorOpacity": 0, "orientation": "left", "pureColor": "#ffffff", "pureColorOpacity": 0 }, "block": "block", "remarks": "Enter your area description.", "create_time": "1621588418", "blockSetting": { "title": { "display": true, "fontFamily": "SF Pro Text", "fontSize": 20, "fontStyle": "Normal", "color": "#2b2b2b", "opacity": 0, "position": "Left", "background": { "gradientEnable": false, "startColor": "#ffffff", "startColorOpacity": 255, "endColor": "#ffffff", "endColorOpacity": 255, "orientation": "left", "pureColor": "#ffffff", "pureColorOpacity": 255 } }, "subTitle": { "display": true, "fontFamily": "SF Pro Text", "fontSize": 14, "fontStyle": "Normal", "color": "#2b2b2b", "opacity": 0, "position": "Left", "background": { "gradientEnable": false, "startColor": "#ffffff", "startColorOpacity": 255, "endColor": "#ffffff", "endColorOpacity": 255, "orientation": "left", "pureColor": "#ffffff", "pureColorOpacity": 255 } }, "price": { "display": true, "fontFamily": "SF Pro Text", "fontSize": 16, "fontStyle": "Normal", "color": "#2b2b2b", "opacity": 0, "position": "Left", "background": { "gradientEnable": false, "startColor": "#ffffff", "startColorOpacity": 255, "endColor": "#ffffff", "endColorOpacity": 255, "orientation": "left", "pureColor": "#ffffff", "pureColorOpacity": 255 } }, "background": { "gradientEnable": false, "startColor": "#ffffff", "startColorOpacity": 0, "endColor": "#ffffff", "endColorOpacity": 0, "orientation": "left", "pureColor": "#ffffff", "pureColorOpacity": 0 } }, "sort": "1", "size": "1:1", "areaInfo": "areaInfo", "update_time": "1621588418", "separator": { "display": false, "height": 1, "color": "#ddddde" }, "header": { "display": false, "fontFamily": "SF Pro Text", "fontSize": 22, "fontStyle": "Normal", "color": "#2b2b2b", "opacity": 0, "position": "Left", "name": "CMyApps Area", "background": { "display": false, "startColor": "#ffffff", "endColor": "#ffffff", "orientation": "left", "pureColor": "#ffffff", "gradientEnable": false }, "src": "", "backgroundImage": null } }, { "id": "978", "gid": "460", "fixed": "fixed", "title": { "display": false, "fontFamily": "SF Pro Text", "fontSize": 22, "fontStyle": "Normal", "color": "#2b2b2b", "opacity": 0, "position": "Left", "name": "CMyApps Area", "background": { "gradientEnable": false, "startColor": "#ffffff", "startColorOpacity": 255, "endColor": "#ffffff", "endColorOpacity": 255, "orientation": "left", "pureColor": "#ffffff", "pureColorOpacity": 255 }, "src": "" }, "type": "Regular", "listType": { "section": "double_default_DD", "type": "Two", "borderRadius": "1" }, "singleStyle": "Fill", "bannerLayout": "bannerLayout", "autoScroll": "autoScroll", "interval": "5", "display_pagination": "display_pagination", "gridLayout": "gridLayout", "header_color": "header_color", "background": { "gradientEnable": false, "startColor": "#ffffff", "startColorOpacity": 0, "endColor": "#ffffff", "endColorOpacity": 0, "orientation": "left", "pureColor": "#ffffff", "pureColorOpacity": 0 }, "block": "block", "remarks": "Enter your area description.", "create_time": "1621588418", "blockSetting": { "title": { "display": true, "fontFamily": "SF Pro Text", "fontSize": 20, "fontStyle": "Normal", "color": "#2b2b2b", "opacity": 0, "position": "Left", "background": { "gradientEnable": false, "startColor": "#ffffff", "startColorOpacity": 255, "endColor": "#ffffff", "endColorOpacity": 255, "orientation": "left", "pureColor": "#ffffff", "pureColorOpacity": 255 } }, "subTitle": { "display": true, "fontFamily": "SF Pro Text", "fontSize": 14, "fontStyle": "Normal", "color": "#2b2b2b", "opacity": 0, "position": "Left", "background": { "gradientEnable": false, "startColor": "#ffffff", "startColorOpacity": 255, "endColor": "#ffffff", "endColorOpacity": 255, "orientation": "left", "pureColor": "#ffffff", "pureColorOpacity": 255 } }, "price": { "display": true, "fontFamily": "SF Pro Text", "fontSize": 16, "fontStyle": "Normal", "color": "#2b2b2b", "opacity": 0, "position": "Left", "background": { "gradientEnable": false, "startColor": "#ffffff", "startColorOpacity": 255, "endColor": "#ffffff", "endColorOpacity": 255, "orientation": "left", "pureColor": "#ffffff", "pureColorOpacity": 255 } }, "background": { "gradientEnable": false, "startColor": "#ffffff", "startColorOpacity": 0, "endColor": "#ffffff", "endColorOpacity": 0, "orientation": "left", "pureColor": "#ffffff", "pureColorOpacity": 0 } }, "sort": "978", "size": "1:1", "areaInfo": "areaInfo", "update_time": "1621588418", "separator": { "display": false, "height": 1, "color": "#ddddde" }, "header": { "display": false, "fontFamily": "SF Pro Text", "fontSize": 22, "fontStyle": "Normal", "color": "#2b2b2b", "opacity": 0, "position": "Left", "name": "CMyApps Area", "background": { "display": false, "startColor": "#ffffff", "endColor": "#ffffff", "orientation": "left", "pureColor": "#ffffff", "gradientEnable": false }, "src": "", "backgroundImage": null } }] }try {var jjj = modeler.compArray(data01, data02);var kkk = modeler.compObj(a, a);console.log(kkk)
} catch (e) {console.log(e)
}

javascript 比较两个json数据是否相等相关推荐

  1. javascript 二维数组 json数据

    二维数组的建立 javascript创建键值对的二维数组 var arr = new Array();arr[0] = new Array();arr[0]['name'] = "jack& ...

  2. javascript eval函数解析json数据时为什加上圆括号eval((+data+))

    原因很简单:因为在js中{}表示一个语句块(代码段),所有加上"()"表示表达式 转载于:https://www.cnblogs.com/lihongchen/p/4270334. ...

  3. java $.getjson_JQuery 获取json数据$.getJSON方法的实例代码

    jQuery系列 第八章 jQuery框架Ajax模块 第八章 jQuery框架Ajax模块 8.1 jQuery框架中的Ajax简介 Ajax技术的核心是XMLHTTPRequest对象,该对象是A ...

  4. Java后台返回和处理JSon数据的方法

    1.下载JsonObject相关jar包 在这里,我们使用JsonObject来将Java类型数据转换成Json类型,首先要下载该库相关的jar包,下载地址如下: http://files.cnblo ...

  5. JavaScript动态向表格添加数据

    利用javascript ,动态向表格中添加数据 1. 首先先写出表格的表头和主干部分 <table width="600" border="1" cel ...

  6. js 对比json数据

    原理:利用递归遍历对比,遇到不相等就return false: /* * 对比两个json数据 * @param:obj1 * @param:obj2 * @return */ function co ...

  7. json数据解析 android,Android基础之json数据解析

    这次来聊聊Android中json数据的解析,既然是基础就要求只要你看一遍就必须会的,不牵涉到太多的复杂逻辑,目的就是让你初步认识json数据的解析和学会对简单的json数据进行解析. 首先第一步我们 ...

  8. 2022年最新省份城市json数据

    需要在app中新增省份与城市数据,没有找到合适的,从国家行政网中下载了最新的城市代码,不过数据中包含了区级代码,用不上,通过excel进行了处理,得到了两个json数据,有需要的可以拿去用 省级 {& ...

  9. json数据在前端(javascript)和后端(php)转换

    学习目的:前后端数据交换 思路: json数据格式是怎么样? 后端各种语言怎么将自己内容转换成json格式的内容? 前端怎么接收json数据?有几种方式? js中怎么将json数据转换成js中的数组, ...

最新文章

  1. jQuery 之正则表达式篇
  2. stylecloud.gen_stylecloud() 参数详解
  3. 介绍 Echoo: go 语言编写的 echo 服务器
  4. mysql何时会走索引
  5. docker更新容器命令 ,自启
  6. 程序员疫苗:代码注入
  7. 阿里推出“阿里云网盘”App;Linux 发布 29 周年​| 极客头条
  8. windows加域后的问题
  9. 为什么微软应该通过收购Docker来与Kubernetes竞争
  10. js 正则表达式去空格
  11. 关于电脑使用的实用技巧
  12. 路由器技术彻底解决路由器IP地址冲突问题
  13. 【全网首发】电脑搜索不到部分WiFi怎么办?亲测有效!
  14. 提高组CSP-S初赛模拟试题整理
  15. AI+大数据:科技技术手段促使二手车电商的“升阶”战
  16. vue引入D3绘制流程图
  17. discuz建站视频教程 免费个人建站视频教程
  18. 006_HTML布局任务与答案第一期(四川师范大学JavaWeb)
  19. 【2023】Eclipse 安装教程
  20. 开源 免费 java CMS - FreeCMS-1.5 站内信

热门文章

  1. 计算机等级证书等级及报考条件
  2. Day17 指针变量做函数形参 指针函数 函数指针
  3. PyCharm无法输入中文,怎么办啊?
  4. 计算机组成原理微机接口及应用实验,QY-JSJ03
  5. 【小程序】微信小程序代码如何转uniapp代码?
  6. 【已解决-靠谱】windows server 2019安装net3.5方法
  7. 火山PC布局器套布局器
  8. 2012年2月12日汇报Axure RP Pro 6.5 Beta简体中文加强测试版进展
  9. Verilog系统函数
  10. 中文版PyCharm改为英文版PyCharm