javascript - 检查 2 个字符串中的 Anagram

标签 javascript

我创建了一个函数来检查 2 个单词是否是变位词,但我想让它变得更好。感觉if语句后面的counter的声明不太好,如果大家有更好的解决办法就好了。

function checkAnagram(string1, string2){

        if(string1.length !== string2.length){
            return false;
        }

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

            if(count <= 0){

                return false;
            }
            var count = 0;

            for(var t = 0; t < string2.length; t++){

                //counter = 0

                if(string2[t].toLowerCase() == string1[i].toLowerCase()){
                    //counter++;
                    count++;
                    break;
                }


            }

        }

        return true;
    }

最佳答案

这里有一个更简单的方法:

var s1 = "test"
var s2 = "tset"

function testAnagram (s1, s2){

 if(!s1 || !s2 || s1.length !== s2.length){return false;}

 var lS1 = s1.toLowerCase();
 var lS2 = s2.toLowerCase();

 if(lS1 === lS2) {return false;}

 var rS1 = lS1.split('').sort().join('');
 var rS2 = lS2.split('').sort().join('');

 return rS1 === rS2;
}



var result = testAnagram(s1, s2);

alert(result);

关于javascript - 检查 2 个字符串中的 Anagram,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38942748/

相关文章:

javascript - 如何在 JavaScript 中引用表示变量?

JavaScript 未通过代理传递

javascript - 如何在 redux 中响应 "sanitize"api?

javascript - oAuth 2 用于授权和自动登录

javascript - 根据 API 响应访问特定值,并将其用于下一个请求 - Postman

javascript - 隐藏 chrome 扩展 : in "Developer Tools" Scripts tab

javascript - 白色 Sprite Material ?

javascript - 如何使用reduce 测试数组的Math.max 函数

javascript - 如何重新调整我的指令以在两个不同的范围内工作?

javascript - 使用 setTimeout 时将值传递给 javascript 中的函数