Reverse a String

Program to reverse a string

JavaScriptBeginner
JavaScript
// Method 1: Using split, reverse, join
let str = "Hello";
let reversed = str.split('').reverse().join('');
console.log("Original:", str);
console.log("Reversed:", reversed);

// Method 2: Using for loop
function reverseString(str) {
    let reversed = '';
    for (let i = str.length - 1; i >= 0; i--) {
        reversed += str[i];
    }
    return reversed;
}

console.log("\nUsing loop:", reverseString("World"));

// Method 3: Using for...of loop
function reverseStringForOf(str) {
    let reversed = '';
    for (let char of str) {
        reversed = char + reversed;
    }
    return reversed;
}

console.log("Using for...of:", reverseStringForOf("JavaScript"));

// Method 4: Using reduce
function reverseStringReduce(str) {
    return str.split('').reduce((acc, char) => char + acc, '');
}

console.log("Using reduce:", reverseStringReduce("Programming"));

// Method 5: Using recursion
function reverseStringRecursive(str) {
    if (str.length <= 1) return str;
    return reverseStringRecursive(str.slice(1)) + str[0];
}

console.log("\nUsing recursion:", reverseStringRecursive("Hello"));

// Method 6: Using spread operator
let reversed2 = [...str].reverse().join('');
console.log("Using spread:", reversed2);

Output

Original: Hello
Reversed: olleH

Using loop: dlroW

Using for...of: tpircSavaJ

Using reduce: gnimmargorP

Using recursion: olleH

Using spread: olleH

This program demonstrates different methods to reverse a string.

Method 1: Split, Reverse, Join

Most common approach:

javascript
str.split('').reverse().join('');

Steps:

  1. split(''): String → Array
  2. reverse(): Reverse array
  3. join(''): Array → String

Method 2: For Loop

Iterate backwards:

javascript
for (let i = str.length - 1; i >= 0; i--) {
    reversed += str[i];
}

Method 3: For...Of Loop

Prepend each character:

javascript
for (let char of str) {
    reversed = char + reversed;
}

Method 4: Reduce

Functional approach:

javascript
str.split('').reduce((acc, char) => char + acc, '');

How it works:

  • Starts with empty string
  • Prepends each character
  • Result is reversed

Method 5: Recursion

Recursive approach:

javascript
if (str.length <= 1) return str;
return reverseStringRecursive(str.slice(1)) + str[0];

How it works:

  • Base case: length <= 1
  • Recursive: reverse rest + first char

Method 6: Spread Operator

ES6 syntax:

javascript
[...str].reverse().join('');

Spread vs Split:

  • Spread: ES6, works with iterables
  • Split: Traditional, string-specific

Time Complexity:

  • All methods: O(n)

When to Use:

  • Split/reverse/join: Simplest, most common

  • Loop: Learning, custom logic

  • Reduce: Functional style

  • Recursion: Learning recursion