# How to Reverse a String in JavaScript
Welcome to the first Mini Code Tutorial! @fototeka.inikas sent a DM to me saying I should start a shorter tutorial series. He said I would be number 1 if I did it π€£. So letβs see if heβs right π. JK. Doing this shorter tutorial have been on my list for awhile. But have you every had a huge list of things to do, and you never end up doing any of it all. Anyways, Iβm happy for the nudge!
In today's lesson, we're going to learn how to reverse a string! Remember in my Web Basics Series, we covered these 3 methods. Let's now apply them and solve this popular algorithm challenge π
# The Challenge
Write a function that reverse a string.
# 1. split()
In JavaScript, there is no built-in method to reverse a string. There is however, a built-in method to reverse an array. So the first step is convert our string into an array.
Split our string into an array of letters.
# 2. reverse()
Excellent, now that we have an array of letters. We can call our built-in array method to reverse the order.
Reverse the order of the items in our array.
# 3. join()
Now that our array contains the reversed letters. Let's convert the array back into a string.
Join the items in our array back into a string.
# Final Solution
And there we have it! We can chain our methods together to a nice function. Congratulation, you have now learned how to reverse a string in JavaScript π₯³
# More Solutions
Using reverse
function reverseString(str) {
return str
.split('')
.reverse()
.join('');
}
Using reduce
function reverseString(str) {
return [...str].reduce((accumulator, current) => {
return current + accumulator;
});
// OR One-Liner
// return [...str].reduce((accumulator, current) => current + accumulator)
}
Using reduceRight
function reverseString(str) {
return [...str].reduceRight((accumulator, current) => accumulator + current);
}
Using for loop
function reverseString(str) {
let result = '';
for (let i = str.length - 1; i >= 0; i--) {
result += str[i];
}
return result;
}
Using sort
function reverseString(str) {
return str
.split('')
.sort(() => 1)
.join('');
}
Using recursion
function reverseString(str = '') {
const [head = '', ...tail] = str;
if (tail.length) {
return reverseString(tail) + head;
}
return head;
}
Know other solutions? Submit it here