Я проверил эту тему: Palindrome check in Javascript Но я больше ищу, чтобы исправить свой собственный алгоритм. Я просто программирую онлайн прямо сейчас, поэтому у меня нет доступа к хорошему отладчику. Таким образом, любые намеки/проблемы с отладкой будут оценены с большой благодарностью. Вот код:Javascript Palindrome Logic
function isPalindrome(str) {
if(str !== null && str !== undefined && str !== NaN) {
var strStripped = str.replace(/[\.,-\/#!$%\^&\*;:{}=\-_`~()@]/g,"");
var strSqueezed = strStripped.replace(/ /g, "");
var i, k;
k = str.length-1;
var numOfValidComparisons = 0;
for(i=0; i<strSqueezed.length; i++) {
if(strSqueezed.charAt(i) === strSqueezed.charAt(k)) {
numOfValidComparisons++;
}
k--;
}
if(numOfValidComparisons === strSqueezed.length)
return true;
else
return false;
}
return false;
}
Я записал сравнительную логику цикла на бумаге и были сбиты с толку на мгновение. Если вы не знакомы с тем, что палиндром здесь: http://en.wikipedia.org/wiki/Palindrome
тест я работаю с прямо сейчас эта строка "race car"
(и отлично смотрится на бумаге)
'str.replace (/ \ Вт/г "") == str.split (""). Обратное(). Присоединиться (""). Заменить (/ \ Вт/г, "") ' – dandavis
Опять же, не ищем других ответов. Я ищу, чтобы исправить это. – gordlonious
«У меня нет доступа к хорошему отладчику» ... если вы не застряли в каком-то древнем браузере, что случилось со встроенной консолью и связанными с ней инструментами? У Chrome есть отличный отладчик. –