Reverse a String in JavaScript

split, reverse, join. Same emoji trap as length.

BeginnerString ProgramsExample 2 of 5
reverse-a-string.js
1// Method 1: Using split, reverse, join
2let str = "Hello";
3let reversed = str.split('').reverse().join('');
4console.log("Original:", str);
5console.log("Reversed:", reversed);
6
7// Method 2: Using for loop
8function reverseString(str) {
9 let reversed = '';
10 for (let i = str.length - 1; i >= 0; i--) {
11 reversed += str[i];
12 }
13 return reversed;
14}
15
16console.log("\nUsing loop:", reverseString("World"));
17
18// Method 3: Using for...of loop
19function reverseStringForOf(str) {
20 let reversed = '';
21 for (let char of str) {
22 reversed = char + reversed;
23 }
24 return reversed;
25}
26
27console.log("Using for...of:", reverseStringForOf("JavaScript"));
28
29// Method 4: Using reduce
30function reverseStringReduce(str) {
31 return str.split('').reduce((acc, char) => char + acc, '');
32}
33
34console.log("Using reduce:", reverseStringReduce("Programming"));
35
36// Method 5: Using recursion
37function reverseStringRecursive(str) {
38 if (str.length <= 1) return str;
39 return reverseStringRecursive(str.slice(1)) + str[0];
40}
41
42console.log("\nUsing recursion:", reverseStringRecursive("Hello"));
43
44// Method 6: Using spread operator
45let reversed2 = [...str].reverse().join('');
46console.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

What's going on

str.split('').reverse().join(''). Spreading [...str] handles most emoji better.

Strings are immutable. You always get a new one.