异构词的查找,并放到一个二维数组中

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

 

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