diff --git a/09_palindromes/solution/palindromes-solution.js b/09_palindromes/solution/palindromes-solution.js index 7950015..b731371 100644 --- a/09_palindromes/solution/palindromes-solution.js +++ b/09_palindromes/solution/palindromes-solution.js @@ -1,6 +1,19 @@ const palindromes = function (string) { - const processedString = string.toLowerCase().replace(/[^a-z0-9]/g, ""); - return processedString.split("").reverse().join("") == processedString; + // Since we only consider letters and numbers, create a variable containing all valid characters + let alphanumerical = 'abcdefghijklmnopqrstuvwxyz0123456789'; + + // Convert to lowercase, split to array of individual characters, filter only valid characters, then rejoin as new string + const cleanedString = string + .toLowerCase() + .split('') + .filter((character) => alphanumerical.includes(character)) + .join(''); + + // Create a new reversed string for comparison + const reversedString = cleanedString.split('').reverse().join(''); + + // Return the outcome of the comparison which will either be true or false + return cleanedString === reversedString; }; module.exports = palindromes;