Let's Code

Posted on • Updated on

# JS Coding Question #2: Reverse a string [Common Question - 3 Solutions]

#### Interview Question #2:

Write a function that reverses a stringβπ€

If you need practice, try to solve this on your own. I have included 3 potential solutions below.

Note: There are many other potential solutions to this problem.

Feel free to bookmark π even if you don't need this for now. You may need to refresh/review down the road when it is time for you to look for a new role.

#### Solution #1: Array methods

• very simple solution that will utilize array methods to reverse the string.
``````function reverseString(str) {
return str.split("").reverse().join("");
}
``````

#### Solution #2: Array forEach

• will cycle through each characters and push it on the temp variable created one by one in reversed order.
``````function reverseString(str) {
let reversedString = ''

str.split('').forEach(char => {
reversedString = char + reversedString
})

return reversedString
}
``````

#### Solution #3: Array reduce

• slightly better than second solution above. Will use reduce and add the result to the empty string in reverse.
``````function reverseString(str) {
return str.split('')
.reduce((prev, curr) => curr + prev, '')
}
``````

Happy coding and good luck if you are interviewing!

If you want to support me - Buy Me A Coffee

In case you like a video instead of bunch of code ππ

Luke Shiru

Consider that your solution wouldn't work with strings containing unicode characters such as emoji, so, for example:

``````reverseString("hello π§π»βπ»"); // "π»βπ»π§ olleh"
``````

To address this, you have a new proposal called `Intl.Segmenter` which will work as expected:

``````const unicodeReverse = string =>
[...new Intl.Segmenter().segment(string)]
.map(({ segment }) => segment)
.reverse()
.join("");

unicodeReverse("π¨π»βπ» hello"); // olleh π¨π»βπ»
``````

Cheers!

Let's Code • Edited on

I would be very surprised if I get asked to take unicode character into account in an interview though.

Luke Shiru

I would be surprised if in a 2021 interview I got asked to reverse a string, if I'm being honest. But if someone ask you to do it, is good to at least know that there are limitations when working with unicode strings.

Let's Code • Edited on

definitely a good possibility in my opinion. I got asked to code it on my last job but it is not to extreme like accounting for unicode. It was something quick and straight to the point. I imagine myself to not continue the interview if interview would go to this extreme. LOL

I wrote an article about FIzz Buzz as well, should be in this series and I was shocked to find out he was asked about it on his recent interview.

Maybe junior level can be asked perhaps?

Luke Shiru

Companies are moving away from this kind of questions in interviews because they don't tell you anything about the candidate, you're just testing their memory instead of their actual skill (similar to how school exams do). Anyone can memorize a FizzBuzz or the definition of closure, so you can't actually measure seniority based on that. Nowadays interviews focus in real world scenarios, allowing the candidate to google stuff when needed, like we all do everyday, and even have the exercises as "take home assignments" because in the the real world you wouldn't have devs watching you while you code.