HTML 判断var 相等,javascript如何判断两个json是否相等?

JSON 英文全称 JavaScript Object Notation, 是一种轻量级的数据交换格式。JSON 格式在语法上与创建 JavaScript 对象代码是相同的。由于它们很相似,所以 JavaScript 程序可以很容易的将 JSON 数据转换为 JavaScript 对象。

38ff50c3e0038faff802957a4b716699.png

先判断是否是对象类型,是否是数组,获取对象长度,然后通过循环遍历json进行对比,遇到不相等就return false。

判断两个json是否相等实现代码:var 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

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" && !(obj1.constructor==Array))

&& ((obj2 && typeof obj2==="object" && !(obj2.constructor==Array)))){

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].constructor==Array&&obj2[ob].constructor==Array){// 如果属性是数组

if(!modeler.compArray(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 if(obj1[ob] && obj2[ob] && typeof obj1[ob] === typeof obj2[ob]){//纯属性

if(obj1[ob]!==obj2[ob]){

return false;

};

}else{

return false;

}

}else{

return false;

}

}

}else{

return false;

}

}else if((obj1 && obj1.constructor==Array) && (obj2 && obj2.constructor==Array)){

if(!modeler.compArray(obj1,obj2)){

return false;

};

}else if(obj1 && obj2){

return obj1 === obj2;

}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;");

}

};

JSON 语法规则数据为 键/值 对。

数据由逗号分隔。

大括号保存对象

方括号保存数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值