【问题标题】:Checking a list of Strings(Array) as palindrome in JS [duplicate]在JS中检查字符串(数组)列表作为回文[重复]
【发布时间】:2013-12-18 15:47:25
【问题描述】:

请解决我的问题,我将检查一个字符串列表作为回文,如果数组中的任何字符串是回文,那么它应该显示结果为真,结果应该是字符串值而不是布尔值。我尝试了很多次,但没有显示结果;请参阅下面的代码:-

function checkPry()
{
    var status = new Array();
    var wordList1 = document.getElementById("tk").value;
    var wordArray = new Array();
    wordArray = wordList1.split(" "); 
    var alength = wordArray.length; 
    for(var i=0; i <= alength; i++)
    {
        var str = wordArray[i];
        var chrlength = str.length;
        var lw = chrlength - 1;
        var chk = "";
        for(j=0; j<=chrlength; j++)
        {
            if(str.charAt(j) != str.charAt((lw - j)))
            {
                chk = "false";
                break;
            }
            else
            {
                chk = "true";
            }
        }
        if (chk == "true")
        {
            status[i] = "true";
        }
        else if (chk == "false")
        {
            status[i] = "false"
        }
    }
    var displayStr = status.toString();
    document.getElementById("show").innerHTML = displayStr;
}

如果我将输入值设为[dalad radar jaijai rexem],那么它应该将结果设为[true,true,false,false],请帮助我;您还可以检查下面的小提琴:--

http://jsfiddle.net/yePQ4/1/

谢谢!

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    你只需要检查反转的东西是否相同

    function reverse(s){
         return s.split("").reverse().join("");
    }
    
    function checkIsPalindrome(arr){
       var result=[];
       for(var i=0;i<arr.length;i++){
           result.push(arr[i]==reverse(arr[i]));
       }
       return result;
    }
    

    【讨论】:

    • 你能不能提供一个小提琴,很难理解
    • 非常感谢...这是非常优化的代码
    • 没问题。很高兴为您提供帮助
    • 嗯,代码真的很好,但问题是我只是初学者,很难理解。你能给我一些关于我的代码的说明吗,问题出在哪里,为什么我的逻辑不起作用,请看我的代码。这对我有很大的帮助。
    【解决方案2】:

    只是为了好玩,这是@scrblnrd3 答案的替代版本,它使用正则表达式来反转字符串而不是拆分/加入。

    function reverse(text) {
        return text.replace(/./g, function(c, i, s) { return s[s.length - 1 - i]; });
    }
    
    function checkIsPalindrome(arr) {
        var result = [];
        for (var i = 0; i < arr.length; i++) {
            result.push(arr[i] == reverse(arr[i]));
        }
        return result;
    }
    

    【讨论】:

    • 你能创建一个小提琴,这样我就可以理解它是如何使用的,我只是一个 JS 的初学者
    • jsfiddle.net/8pLFC/1 :p 请不要接受这个答案,scrblnrd3 值得称赞。
    • +1 给你,我发自内心的致敬。这么大的想法;
    猜你喜欢
    • 1970-01-01
    • 2018-06-03
    • 2015-02-05
    • 1970-01-01
    • 2017-05-31
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多