源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-09-12 15:36 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:详解JS 比较两个Json对象的值是否相等的实例
[u]复制代码[/u] 代码如下:
//比较数组是否相同   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;");     }    };
测试数据:
[u]复制代码[/u] 代码如下:
     var data01=[{value:[{id:'asa',value:'dfs'},{}]}];      var data02=[{value:[{id:'asa',value:'dfs'},{}]}];      try {         var jjj=modeler.compArray(data01,data02);      }catch(e)  {      }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部