From aa6cde3a791362a308bcdf485475105d03927bb3 Mon Sep 17 00:00:00 2001 From: Thuan Bui <9248622+10h30@users.noreply.github.com> Date: Wed, 26 Feb 2025 10:21:22 +0900 Subject: [PATCH] Complete excersie 9 --- 09_palindromes/palindromes.js | 14 ++++++++++++-- 09_palindromes/palindromes.spec.js | 14 +++++++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/09_palindromes/palindromes.js b/09_palindromes/palindromes.js index 8d21018..b4f6731 100644 --- a/09_palindromes/palindromes.js +++ b/09_palindromes/palindromes.js @@ -1,5 +1,15 @@ -const palindromes = function () { - +const palindromes = function (checkString) { + const formattedString = checkString + .split("") + .filter(char => {return /[a-zA-Z0-9]/.test(char)}) + .join(""); + console.log("Original: " + formattedString.toUpperCase()) + const reverseString = formattedString + .split("") + .reverse() + .join(""); + console.log("Reverse: " + reverseString.toUpperCase()) + return (formattedString.toUpperCase() === reverseString.toUpperCase()) }; // Do not edit below this line diff --git a/09_palindromes/palindromes.spec.js b/09_palindromes/palindromes.spec.js index 90d53e4..8ce5aac 100644 --- a/09_palindromes/palindromes.spec.js +++ b/09_palindromes/palindromes.spec.js @@ -4,25 +4,25 @@ describe('palindromes', () => { test('works with single words', () => { expect(palindromes('racecar')).toBe(true); }); - test.skip('works with punctuation ', () => { + test('works with punctuation ', () => { expect(palindromes('racecar!')).toBe(true); }); - test.skip('works with upper-case letters ', () => { + test('works with upper-case letters ', () => { expect(palindromes('Racecar!')).toBe(true); }); - test.skip('works with multiple words', () => { + test('works with multiple words', () => { expect(palindromes('A car, a man, a maraca.')).toBe(true); }); - test.skip('works with multiple words', () => { + test('works with multiple words', () => { expect(palindromes('Animal loots foliated detail of stool lamina.')).toBe(true); }); - test.skip('doesn\'t just always return true', () => { + test('doesn\'t just always return true', () => { expect(palindromes('ZZZZ car, a man, a maracaz.')).toBe(false); }); - test.skip('works with numbers in a string', () => { + test('works with numbers in a string', () => { expect(palindromes('rac3e3car')).toBe(true); }); - test.skip('works with unevenly spaced numbers in a string', () => { + test('works with unevenly spaced numbers in a string', () => { expect(palindromes('r3ace3car')).toBe(false); }); });