Я пытаюсь настроить функцию, которая проверяет, является ли слово или текст палиндромом. Для этого он разбивает текст, так что каждая буква является элементом нового массива, избавляется от пробелов и создает обратный массив. Затем он проверяет, равны ли все элементы двух массивов в одинаковых позициях. Если нет, он возвращает false, если да, он возвращает true. Здесь функция:
function palindrome(str) {
var low = str.toLowerCase();
var newArray = low.split("");
var noSpace = newArray.filter(function(val) {
return val !== " ";
});
var reverse = noSpace.reverse();
function check (a, b) {
console.log(`checking '${a}' against '${b}'`);
var partial;
var result = 1;
for (var i = 0; i < a.length; i++) {
console.log(`comparing '${a[i]}' and '${b[i]}'`);
if (a[i] !== b[i]) {
result = 0;
} else {
partial = 1;
result *= partial;
}
}
return result;
}
var result = check(noSpace, reverse);
if (result == 1) {
return true;
} else {
return false;
}
}
palindrome("r y e");
Я не знаю, что не так, но кажется, что функция продолжает возвращать истинное значение независимо от того, какое слово или текст я передаю функции. Что не так с этим?
reverse
real. - person   schedule 18.08.2017toLowerCase
, да. Что касается запятой и апострофа, это тоже не то, что распознает код OP, и я не слишком уверен, что должно быть палиндромом. Строки могут содержать всевозможные странные символы, а также всевозможные странные знаки препинания. Первое, что приходит на ум, это〜
, это пунктуация или часть предупреждения?〜んん
палиндром? Дополнение: исходя из вопроса, который я прочитал вчера, естьGREEK SMALL LETTER FINAL SIGMA' (U+03C2)
, при изменении этого значения вы превращаете его в обычную сигму, чтобы представить, что она больше не находится в конце строки? - person ASDFGerte   schedule 18.08.2017"????".split('').reverse().join('')
. - person   schedule 18.08.2017[..."????"].reverse().join('')
. - person   schedule 18.08.2017"ΣΣ".toLowerCase();
. Отказ от ASCII откроет множество вопросов о том, каким должен быть палиндром. Реверсирование текста и модификаторов zalgo - это то, что я вижу, также не обрабатывается вашим примером. - person ASDFGerte   schedule 18.08.2017