Логика палиндрома Javascript

Я проверил эту тему: Проверка палиндрома в Javascript Но я больше хочу исправить свой собственный алгоритм. Сейчас я просто программирую онлайн, поэтому у меня нет доступа к хорошему отладчику. Поэтому любые найденные подсказки/отладочные проблемы будут очень признательны. Вот код:

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" (и она отлично выглядит на бумаге)


person gordlonious    schedule 26.03.2015    source источник
comment
Опять же, не ища других ответов, я хочу исправить этот.   -  person gordlonious    schedule 26.03.2015
comment
У меня нет доступа к хорошему отладчику... если вы не застряли в каком-то древнем браузере, что не так со встроенной консолью и сопутствующими инструментами? В Chrome встроен отличный отладчик.   -  person James Allardice    schedule 26.03.2015
comment
Также на компьютере, который не позволяет сохранять на диск. Я не знаю, как отлаживать код, не сохраненный на диске.   -  person gordlonious    schedule 27.03.2015
comment
В целом этот код - мусор, ха-ха. По крайней мере, я дошел до этого момента.   -  person gordlonious    schedule 27.03.2015


Ответы (1)


k = str.length-1;

должно быть

k = strSqueezed.length-1;

Вот и все.

https://jsfiddle.net/aejmjsqk/

person EyeOfTheHawks    schedule 26.03.2015
comment
Смешной. Спасибо за свежий взгляд. Я бы получил его после обеда в любом случае, но спасибо! - person gordlonious; 27.03.2015