# 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 πŸ‘

How to reverse a string in javascript

# The Challenge

Write a function that reverse a string.

How to reverse a string algorithm challenge

# 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.

Javascript split function

# 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.

Javascript reverse function

# 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.

Javascript join function

# 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 πŸ₯³

Javascript solution to reverse a string

# 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


More Courses