html - 检查两个字符串在 JavaScript 中是否是彼此的变位词。这里使用了什么逻辑?

标签 html css anagram

有人可以帮忙解释一下 JavaScript 代码中使用的逻辑吗?

下面的代码检查两个字符串是否是彼此的变位词,但我不明白用于检查字符串的方法。

谢谢。

<script type="text/javascript">
$(document).ready(function() {

    var anagram = function(str1, str2){
    if (str1.length !== str2.length) {
        return false;
    }

    var sortstr1 = str1.split('').sort().join('');
    var sortstr2 = str2.split('').sort().join('');

    return (sortstr1 === sortstr2);
}

    $('.AnagramChecker').on('click', function(e) {
        e.preventDefault();
        if($('#string1').val() == '') {
            $('#string1').addClass('error');
            if($('#string2').val() == '') {
                $('#string2').addClass('error');
            }
            $('.results').empty();
            $('.results').hide();
        } else {
            $('#string1').removeClass('error');
            if($('#string2').val() == '') {
                $('#string2').addClass('error');
                $('.results').empty();
                $('.results').hide();
            } else {
                $('#string2').removeClass('error');
                var isAnagram = anagram($('#string1').val(), $('#string2').val());
                $('#string1').val('');
                $('#string2').val('')
                $('.results').show();
                $('.results').empty().append('Anagram is: ' + isAnagram);
            }
        }
    });
});
</script>

最佳答案

两个字符串都被拆分成各自字符的数组,然后按字母顺序排序并再次连接成字符串。然后比较字符串,如果它们相同,则为彼此的变位词。

关于html - 检查两个字符串在 JavaScript 中是否是彼此的变位词。这里使用了什么逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35144857/

相关文章:

html - 创建倾斜的 div 并水平和垂直对齐它们

css - 防止移动设备上的站点导航重叠 header

java - 字谜的运行时错误 - 线程 "main"java.lang.StringIndexOutOfBoundsException : String index out of range: -1 中出现异常

c - Frama-C 字谜函数行为验证

objective-c - 打乱 NSString 顺序的快速方法?

jquery 切换...跳转到页面顶部

css - 在 <li> 中将 <div> 向左对齐?

javascript - 如何在动态添加的元素上切换 Bootstrap 弹出窗口

css - Ng-Animate 不适用于 Chrome

css - 使用 Bootstrap Columns 创建水平滚动列表项 View