我写的代码,感觉挺容易理解的,有需要的可以看下

来源:1-6 编程练习

hins_

2017-08-25 20:54

        function arraysSimilar(arr1, arr2){

        var narr1=new Array();

        var narr2=new Array(); 

        if(arr1 instanceof Array==false||arr2 instanceof Array==false){

        return false

        }

        else if(arr1.length==arr2.length){

        for(var i=0;i<arr1.length;i++){

        narr1[i]=typeof arr1[i];

        narr2[i]=typeof arr2[i];        

        }

        for(var i=0;i<arr1.length;i++){

        for(var j=0;j<arr2.length;j++){

        if(narr1[i]==narr2[j]&&narr1[i]!='object'){

        narr1[i]=true;

        narr2[j]=true;

        break;

        }

          else if(narr1[i]==narr2[j]&&narr1[i]=='object'){

          if(arr1[i]==null||arr2[j]==null){

          if(arr1[i]==null&&arr2[j]==null){

          narr1[i]=true;

          narr2[j]=true;

          break;

          }

         

          }

          else if(arr1[i].constructor==arr2[j].constructor){

          narr1[i]=true;

                    narr2[j]=true;

          break; 

          }

          }        

          

        }

        }

        for(var i=0;i<arr1.length;i++){

        if(narr1[i]!=true){        

        return false;

        break;

        }        

        }

        return true;

        }

        else

        return false;

        }


写回答 关注

2回答

  • qq_21克_3
    2017-08-26 21:58:45
    已采纳

    写个注释啊

    hins_

    额忘记了

    2017-08-28 12:05:57

    共 2 条回复 >

  • 点赞狂魔
    2017-09-06 14:57:33

    提个问题

    题目中定义的数组相似概念包括了:1.A和B都是数组 2.A和B长度相同 3.A和B类型相同 ,关于第三点很多人的理解不同,从参考答案的写法来看,这里的类型相同不光是A的子元素有的类型B都有之外,每种类型的子元素的个数都应对应相等,如A=[String1,String2,String3,Num1,Num2]和B=[String1,String2,Nun1,Num2,Num3]的判定结果应该是不相似的,很多人都没有考虑这一点

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281112 学习 · 1020 问题

查看课程

相似问题