判断两个字符串包含相同个数和种类字母

图片.png
<script> 
function isMatch(str1,str2){
    if(str1===str2){
        console.log("true1");
        return true;
    }else if(typeof str1!="string"||typeof str2!="string"){
        console.log("false1");
        return false;
    }else{
        var conversionStr1=conversion(str1);
        var conversionStr2=conversion(str2);
        return comparsion(conversionStr1,conversionStr2);
        
    }
}
function conversion(str){
    var jsonobj={};
    var strArray=str.split("");
    for(var i=0; i<strArray.length; i++){
        if(jsonobj[strArray[i]]){
            ++jsonobj[strArray[i]];
        }else{
            jsonobj[strArray[i]]=1;
        }
    }
    return jsonobj;
}

function comparsion(obj1,obj2){
    var sortObjKey1=Object.keys(obj1);
    var sortObjKey2=Object.keys(obj2);
        if(sortObjKey1.length!==sortObjKey2.length){
            return false;
        }else{
            for (var key in obj1) {
                if(obj1[key]!==obj2[key]){
                    return false;
                }
            }
            return true;
        }
}
console.log(isMatch('something', 'ginhtemos'));   // true
console.log(isMatch('aaa', 'aa'));  //false
console.log(isMatch('abb', 'baa'));  //false
console.log(isMatch('hello', 'olelh'));  //true
</script>

注意Object.keys返回 「数组」

图片.png

var sortObjKey1=Object.keys(obj1);
var sortObjKey2=Object.keys(obj2);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容