Найти палиндромы в тексте 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);
→ Ссылка