详解JS 比较两个Json对象的值是否相等的实例
//比较数组是否相同
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对象的值是否相等的实例
- JS中如何比较两个Json对象是否相等实例代码
- JS中如何比较两个Json对象是否相等
- 比较两个Json对象是否相等
- 比较两个Json对象是否相等
- 比较任意两个JSON串是否相等(比较对象是否相等)JAVA版
- c\c++中比较两个字符串或string对象是否相等
- 判断两个对象是否相等的js函数
- 比较两个Image对象是否相等、xib中设置自定义整个cell的高度
- C#中??和?分别是什么意思? 在ASP.NET开发中一些单词的标准缩写 C#SESSION丢失问题的解决办法 在C#中INTERFACE与ABSTRACT CLASS的区别 SQL命令语句小技巧 JQUERY判断CHECKBOX是否选中三种方法 JS中!=、==、!==、===的用法和区别 在对象比较中,对象相等和对象一致分别指的是什么?
- Java 比较两个对象是否相等【含字符串,区分与不区分大小写】
- JavaScript比较两个对象是否相等的方法
- c\c++中比较两个字符串或string对象是否相等
- 比较两个JSON字符串是否完全相等
- c\c++中比较两个字符串或string对象是否相等
- java 比较两个对象是否相等
- 比较两个json是否相等,忽略数组内元素顺序
- Gson: 比较两个json是否等价(比较java bean是否相等的通用方法)
- c\c++中比较两个字符串或string对象是否相等
- 判断两个对象是否相等的js函数