我寫的代碼,感覺挺容易理解的,有需要的可以看下
? ? ? ? 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;
? ? ? ? }
2017-08-26
寫個注釋啊
2017-09-06
提個問題
題目中定義的數組相似概念包括了:1.A和B都是數組 2.A和B長度相同 3.A和B類型相同 ,關于第三點很多人的理解不同,從參考答案的寫法來看,這里的類型相同不光是A的子元素有的類型B都有之外,每種類型的子元素的個數都應對應相等,如A=[String1,String2,String3,Num1,Num2]和B=[String1,String2,Nun1,Num2,Num3]的判定結果應該是不相似的,很多人都沒有考慮這一點