最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

详解JS比较两个Json对象的值是否相等的实例_javascript技巧

来源:懂视网 责编:小采 时间:2020-11-27 21:16:05
文档

详解JS比较两个Json对象的值是否相等的实例_javascript技巧

详解JS比较两个Json对象的值是否相等的实例_javascript技巧: 代码如下://比较数组是否相同 modeler.compArray=function(array1,array2) { if((array1&&typeof array1 ===object&&array1.constructor===Array)&&(array2&&typeof array2 ===object&&array2.c
推荐度:
导读详解JS比较两个Json对象的值是否相等的实例_javascript技巧: 代码如下://比较数组是否相同 modeler.compArray=function(array1,array2) { if((array1&&typeof array1 ===object&&array1.constructor===Array)&&(array2&&typeof array2 ===object&&array2.c

代码如下:
//比较数组是否相同
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")&&((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对象的值是否相等的实例_javascript技巧

详解JS比较两个Json对象的值是否相等的实例_javascript技巧: 代码如下://比较数组是否相同 modeler.compArray=function(array1,array2) { if((array1&&typeof array1 ===object&&array1.constructor===Array)&&(array2&&typeof array2 ===object&&array2.c
推荐度:
标签: js 实例 javascript
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top