diff --git a/palindromes/palindromes.js b/palindromes/palindromes.js index 5c41da4..0fc16ae 100644 --- a/palindromes/palindromes.js +++ b/palindromes/palindromes.js @@ -1,11 +1,33 @@ -const palindromes = function(string) { - const processedString = string.toLowerCase().replace(/[^a-z]/g, ""); - return ( - processedString - .split("") - .reverse() - .join("") == processedString - ); +//This is a method using Regular Expressions, and is probably the easiest if you know how to use them + +// const palindromes = function (string) { +// const processedString = string.toLowerCase().replace(/[^a-z]/g, ''); +// return processedString.split('').reverse().join('') == processedString; +// }; + +//there are many ways of checking the solution for palindromes without using regex. Here is one. +const palindromes = function (string) { + //there are many ways of checking the solution for palindromes without using regex. Here is one. + let alphabet = 'abcdefghijklmnopqrstuvwxyz'; //create a variable that holds all the letters of the alphabet + + //Take the input string, convert to lowercase, split, reverse, & filter only letters, before rejoining them together as the constant cleanedString. + const cleanedString = string + .toLowerCase() + .split('') + .filter((letter) => alphabet.includes(letter)) + .join(''); + + //make a new const from the cleaned string, and reverse it. + const reversedString = cleanedString.split('').reverse().join(''); + + //we then finally compare cleanedString & reversedString which returns true/false + return cleanedString === reversedString; }; +//check with console.log statements below in your daw/ + +// console.log(palindromes('A car, a man, a maraca.')); +// console.log(palindromes('ZZZZ car, a man, a maracazzzz.')); +// console.log(palindromes('this is not a paldindrome')); +// Do not edit below this line module.exports = palindromes;