diff --git a/03_reverseString/03_reverseString/README.md b/03_reverseString/03_reverseString/README.md new file mode 100644 index 0000000..05221ae --- /dev/null +++ b/03_reverseString/03_reverseString/README.md @@ -0,0 +1,12 @@ +# Exercise 03 - Reverse a String + +Pretty simple, write a function called `reverseString` that returns its input, reversed! + +```javascript +reverseString('hello there') // returns 'ereht olleh' +``` + +You will notice in this exercise that there are multiple tests, after making the first one pass, enable the others one by one by deleting the `.skip` in front the `test.skip()` function. + +## Hints +Strings in JavaScript cannot be reversed directly so you're going to have to split it into something else first.. do the reversal and then join it back together into a string. diff --git a/03_reverseString/03_reverseString/reverseString.js b/03_reverseString/03_reverseString/reverseString.js new file mode 100644 index 0000000..8f65867 --- /dev/null +++ b/03_reverseString/03_reverseString/reverseString.js @@ -0,0 +1,15 @@ +const reverseString = function(string) { + + const splitString = string.split(""); + let reverse = ""; + + for (let i = (splitString.length - 1); i >= 0; i--) { + const pullString = splitString[i]; + reverse += pullString; + } + + return reverse; +}; + +// Do not edit below this line +module.exports = reverseString; diff --git a/03_reverseString/03_reverseString/reverseString.spec.js b/03_reverseString/03_reverseString/reverseString.spec.js new file mode 100644 index 0000000..b51c50e --- /dev/null +++ b/03_reverseString/03_reverseString/reverseString.spec.js @@ -0,0 +1,18 @@ +const reverseString = require('./reverseString') + +describe('reverseString', () => { + test('reverses single word', () => { + expect(reverseString('hello')).toEqual('olleh'); + }); + + test('reverses multiple words', () => { + expect(reverseString('hello there')).toEqual('ereht olleh') + }) + + test('works with numbers and punctuation', () => { + expect(reverseString('123! abc!')).toEqual('!cba !321') + }) + test('works with blank strings', () => { + expect(reverseString('')).toEqual('') + }) +});