Javascript 试图创建一个回文函数来解释空格

Javascript 试图创建一个回文函数来解释空格,javascript,arrays,Javascript,Arrays,好的,回文是一个拼写相同的单词。如果我们想把一个同样的短语倒过来怎么办?因此,kook就是其中之一赛车是另一款 所以我做了一个不考虑空间的 function isPal(string){ var l = string.length; for (var i = 0; i < (l/2); ++i) { if (string.charAt(i) != string.charAt(l - i - 1)){ return false;

好的,回文是一个拼写相同的单词。如果我们想把一个同样的短语倒过来怎么办?因此,
kook
就是其中之一<代码>赛车是另一款

所以我做了一个不考虑空间的

function isPal(string){
    var l = string.length;
    for (var i = 0; i < (l/2); ++i) {
        if (string.charAt(i) != string.charAt(l - i - 1)){
            return false;
        }
    }
    return true;
}
如果我返回
arr
,它仍然会给出包含空格的字符串。我如何做到这一点?谢谢

编辑:使用了解决方案,但在“赛车”上仍然出现错误 以下是我得到的:

function isPalindrome(string){
    var arr = string.split('');
    for (i = 0; i < arr.length; i++){
        if (arr[i] === ' '){
            arr.splice(i, 1);
        } else if (arr[i] != arr[arr.length - i - 1]){
            return false;
        }
    }
    return true;
}
函数isAlindrome(字符串){
var arr=string.split(“”);
对于(i=0;i

我的错误在哪里?

只需检查不带空格的字符串:

function isPal(string){
   string = string.split(" ").join("");  // remove all spaces
   var l = string.length;
    for (var i = 0; i < (l/2); ++i) {
        if (string.charAt(i) != string.charAt(l - i - 1)){
            return false;
        }
    }
    return true;
}

isPal("a man a plan a canal panama"); // true
函数isPal(字符串){
string=string.split(“”).join(“”;//删除所有空格
var l=字符串长度;
对于(变量i=0;i<(l/2);+i){
if(string.charAt(i)!=string.charAt(l-i-1)){
返回false;
}
}
返回true;
}
伊斯帕尔(“巴拿马运河计划中的一个人”);//真的

只需检查不带空格的字符串:

function isPal(string){
   string = string.split(" ").join("");  // remove all spaces
   var l = string.length;
    for (var i = 0; i < (l/2); ++i) {
        if (string.charAt(i) != string.charAt(l - i - 1)){
            return false;
        }
    }
    return true;
}

isPal("a man a plan a canal panama"); // true
函数isPal(字符串){
string=string.split(“”).join(“”;//删除所有空格
var l=字符串长度;
对于(变量i=0;i<(l/2);+i){
if(string.charAt(i)!=string.charAt(l-i-1)){
返回false;
}
}
返回true;
}
伊斯帕尔(“巴拿马运河计划中的一个人”);//真的

将一个单词拆分成一个数组,反转并再次连接以检查单词是否为回文似乎要容易得多。如果要忽略空间,只需删除空间的所有实例:

let word = 'race car';

let isPalindrome = (word) => {
   let nospaces = word.replace(/\s/g, '');
   return [...nospaces].reverse().join('') === nospaces;
}
或非es6:

var word = 'race car';

var isPalindrome = function(word) {
   var nospaces = word.replace(/\s/g, '');
   return nospaces.split('').reverse().join('') === nospaces;
}

将一个单词拆分成一个数组,反转并再次连接以检查它是否是回文,似乎要容易得多。如果要忽略空间,只需删除空间的所有实例:

let word = 'race car';

let isPalindrome = (word) => {
   let nospaces = word.replace(/\s/g, '');
   return [...nospaces].reverse().join('') === nospaces;
}
或非es6:

var word = 'race car';

var isPalindrome = function(word) {
   var nospaces = word.replace(/\s/g, '');
   return nospaces.split('').reverse().join('') === nospaces;
}

您的问题在以下行中:

arr.push(string.split(''));
string.split(“”)返回一个数组。因此,arr实际上是一个数组,其中包含一个条目(另一个包含字符的数组)。替换:

var arr = [];
arr.push(string.split(''));


它应该按预期工作

您的问题如下所示:

arr.push(string.split(''));
string.split(“”)返回一个数组。因此,arr实际上是一个数组,其中包含一个条目(另一个包含字符的数组)。替换:

var arr = [];
arr.push(string.split(''));


它应该像预期的那样工作

仍然会出错:(以下是我所做的…函数isAlindrome(string){var arr=string.split(“”);for(I=0;I