Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript回文_Javascript_Function_Palindrome - Fatal编程技术网

JavaScript回文

JavaScript回文,javascript,function,palindrome,Javascript,Function,Palindrome,我找到了一个关于如何在StackOverFlow中编写回文的解决方案。这是代码片段: function palindrome(str) { var len = str.length; for ( var i = 0; i < Math.floor(len/2); i++ ) { if (str[i] !== str[len - 1 - i]) { //Problem in this line return false;

我找到了一个关于如何在StackOverFlow中编写回文的解决方案。这是代码片段:

function palindrome(str) {
    var len = str.length;
    for ( var i = 0; i < Math.floor(len/2); i++ ) {
        if (str[i] !== str[len - 1 - i]) {   //Problem in this line
            return false;
        }
    }
    return true;
}
函数回文(str){
var len=str.length;
对于(变量i=0;i

除了我这里的那一行,我都懂。谁能帮我把它分解一下吗?提前谢谢

str[i]
表示str中的第(i+1)个字符。如果str是回文,则该字符必须等于从字符串末尾开始的第i个字符(根据定义)

字符串中的最后一个字符位于len-1位置(因为len被定义为字符串的长度,索引从0开始计数)。所以你需要从中减去i,得到字符所在的位置,这个位置应该与
str[i]
相同。因此
str[len-1-i]


进行比较==,即不相等。在这种情况下,我们可以确定没有回文,可以使用
false

退出循环,循环逐步遍历字符串的前半部分,并检查连续字符,查看它是否与字符串另一端的下一个连续字符(从末尾开始)不相等(或不相同)

|0|1|2|3|4|
|l|e|v|e|l|

len = 5
这将为您提供:

str[i] !== str[len - 1 - i]

i=0
时,
str[i]
是l,它等于
str[5-1-0]
,它是
str[4]
,它也是l

此函数不生成回文。它只是检查一个字符串是否为一。你能解释一下这部分的意思吗?str[len-1-i])当然,它会在
len-1-i
位置获取字符串的字符,您应该检查此链接以获得更好的解决方案[Javascript回文]()