2016-02-29 140 views
0

回文是一个单词,短语,数字或符号或元素的其他序列,其含义可以用正向或反向的相同方式解释。着名的例子包括“爱茉莉,罗姆人”,“一个男人,一个计划,一条运河:巴拿马”和“尼克松”中的“不'x'”。 - 维基百科确定给定字符串是否是有效回文。 JS

我们的目标是确定给定的字符串是否是有效的回文。

测试用例:

Test.assertEquals(palindrome("Amore, Roma"), true) 
Test.assertEquals(palindrome("A man, a plan, a canal: Panama"), true) 
Test.assertEquals(palindrome("No 'x' in 'Nixon'"), true) 
Test.assertEquals(palindrome("Abba Zabba, you're my only friend"), false) 

我迄今为止代码:

function palindrome(string) { 
    var str = string.toLowerCase().replace(/[^a-z]+/g,""); 
    var rev= str.split("").reverse().join(""); 

    if (string == rev) { 
     return true; 
    } else { 
     return false; 
    } 
} 

显然join是不确定的,但我不明白为什么?

+0

你得到的具体错误是什么? – Hamms

+4

您需要检查'str == rev',并且您可以通过仅返回'str == rev'来简化代码,而不需要'if'' else' – jcubic

+0

您可以给出它不起作用的具体示例吗? –

回答

0

我想你的例子有以下变化和它的作品在OSX 10.9:

function palindrome(string) { 
    var str = string.toLowerCase().replace(/[^a-z]/g, ""); 

    var rev = str.split("").reverse().join(""); 

    return (str == rev); 
} 

它出现在阵列join()方法已自1.1版的JavaScript的一部分 - 这两个特定的错误信息和一些你的环境描述应该有助于解决这个问题。

相关问题