Найти палиндромы в тексте js
Напишите программу, которая извлекает из заданного текста все палиндромы
Какой-то бред получился, наверное, методы строк к элементам массива нельзя применять, даже если они сами строки. Помогите найти верное решение.
let str = 'abba, lamal, exe and this is not a pallindrom';
function extractPalindromes (string) {
let delPunctStr = string.replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/ig, "");
let arrayOfWords = delPunctStr.split([ ]);
for (let i=0; i<arrayOfWords.length; i++){
if (function checkPalindrom(arrayOfWords[i]) {
return arrayOfWords[i] == arrayOfWords[i].split('').reverse().join('');
}
let palindromArr.push(arrayOfWords[i]);
}
return palindromArr;
}
extractPalindromes(str);
Ответы (1 шт):
Автор решения: Андрей Григорьев
→ Ссылка
Подчистил ваш код плюс некоторые ошибки указал в комменте
Вот так работает
function checkPalindrom(word) {
return word == word.split("").reverse().join("");
}
let str = "abba, lamal, exe and this is not a pallindrom";
function extractPalindromes(string) {
let delPunctStr = string.replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/gi, "");
let arrayOfWords = delPunctStr.split(" ");
let palindromArr = [];
for (let i = 0; i < arrayOfWords.length; i++) {
if (checkPalindrom(arrayOfWords[i])) {
palindromArr.push(arrayOfWords[i]);
}
}
return palindromArr;
}
extractPalindromes(str);
Если более коротко хотите сделать - можно так
let str = "abba, lamal, exe and this is not a pallindrom";
function extractPalindromes(string) {
return string
.replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/gi, "")
.split(" ")
.filter((word) => word == word.split("").reverse().join(""));
}
extractPalindromes(str);