異構詞的查找,並放到一個二維數組中

var s=["abc","cba","def","fed","fff","bca","edf"];
//思路:首先寫一個函數,判斷兩個詞是不是異構詞,然後再創建一個變量存放結果就行
//判斷是否是異構詞,就判斷每個字符出現的次數是否相同就可以,對每個字符串創建一個對象保存每個字符出現的次數,最後比較這兩個對象是否相同
function  isthesame(s,t) {
    if(s.length!==t.length){
        return false;
    }
    var len=s.length;
    var objs={} ;
    var objt={};
    for(var i=0;i<len;i++){
        objs[s[i]]=objs[s[i]]+1||1;
        objt[t[i]]=objt[t[i]]+1||1;
    }
   //比較兩個對象是否相等,不能直接等於,要判斷屬性是否一樣;
   for(let k in objs){
       if(objs[k]!==objt[k]){
           return false;
       }
   }
    return true;
}

var result=[];
result.push(new Array(s[0])); //便於開始的比較
for(var  i=1;i<s.length;i++){
    var count=0;
    for( var j in result){
        //此處注意的是第一次查找
        if(isthesame(s[i],result[j][0])==true){
            result[j].push(s[i]);
            break;
        }else{
           count++;
        }
    }
    if(count==result.length){
        result.push(new Array(s[i]));
    }
}

console.log(result);




var obj1={a:2,b:3,c:4};
var obj2={a:2,b:3,c:4};
console.log(obj1==obj2);//false

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章