手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >详解JS 比较两个Json对象的值是否相等的实例
详解JS 比较两个Json对象的值是否相等的实例
摘要:复制代码代码如下://比较数组是否相同modeler.compArray=function(array1,array2){if((array...

复制代码 代码如下:

//比较数组是否相同

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].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]==="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'},{}]}];

var data02=[{value:[{id:'asa',value:'dfs'},{}]}];

try {

var jjj=modeler.compArray(data01,data02);

}catch(e) {

}

【详解JS 比较两个Json对象的值是否相等的实例】相关文章:

jQuery判断一个元素是否可见的方法

详解Node.js包的工程目录与NPM包管理器的使用

一个很简单的办法实现TD的加亮效果.

JQuery中两个ul标签的li互相移动实现方法

JS实现简洁、全兼容的拖动层实例

JavaScript中关联原型链属性特性

解决未知尺寸的图片撑破页面的问题

javascript检测两个数组是否相似

详解Javascript中的Object对象

JavaScript获取两个数组交集的方法

精品推荐
分类导航