DEV Community

Cover image for Reverse an array in different ways.
Jyoti chaudhary
Jyoti chaudhary

Posted on

2

Reverse an array in different ways.

There is a built-in array method in Javascript that reverses the array i.e. reverse() method.

1. Using reverse() method:

reverse() method: The reverse() method reverses the array in place, meaning it modifies the original array directly and does not return a new array.

Example:
const givenArr = [5, 2, 3, 7, 9, 15, 20];
const reversedArr1 = givenArr.reverse();

// Prints the reversed array
console.log(reversedArr1);  // Output: [20, 15, 9, 7, 3, 2, 5]
console.log(givenArr);  // Output: [20, 15, 9, 7, 3, 2, 5]

Enter fullscreen mode Exit fullscreen mode
  • The reverse() method directly modifies the original array by reversing its elements.
  • The reversed array is also returned as the result of the method

In the above example, If you want to avoid modifying the original array, you can first create a copy of the array using .slice() and then apply .reverse() to the copy.

const givenArr = [5, 2, 3, 7, 9, 15, 20];

// Create a copy of the array and reverse the copy
const reversedArr = givenArr.slice().reverse();

console.log(reversedArr);  // Output: [20, 15, 9, 7, 3, 2, 5]
console.log(givenArr);   // Output: [5, 2, 3, 7, 9, 15, 20]
Enter fullscreen mode Exit fullscreen mode
2. Using a for-loop:
const givenArr = [5, 12, 3, 7, 21, 9, 45, 90];
const printReversedArr = (arr) => {
    const arrLen = arr.length;
    for(let i = 0; i < arrLen / 2; i++) {
        let temp = arr[i];
        arr[i] = arr[arrLen - 1 - i];
        arr[arrLen - 1 - i] = temp
    }
    return arr ;
}
console.log(printReversedArr(givenArr));  // Output: [90, 45, 9, 21, 7, 3, 12, 5]

Enter fullscreen mode Exit fullscreen mode
3. Using a for-loop (with a new array):
const givenArr = [5, 12, 3, 7, 21, 9, 45, 90];
const getReverseArr = (arr) => {
    let reversedArr = [];
    for(let i = arr.length - 1; i >= 0 ; i --) {
        reversedArr.push(arr[i]);
    }
    return reversedArr;
}
console.log(getReverseArr(givenArr));  // Output: [90, 45, 9, 21, 7, 3, 12, 5]

Enter fullscreen mode Exit fullscreen mode
4. Using forEach() method:
const givenArr = [ 12, 3, 21, 9, 45, 22, 7];
const reverseArray = (arr) => {
    let reversedArr = [];
    arr.forEach(item => {
        reversedArr.unshift(item);
    });
    return reversedArr;
}
console.log(reverseArray(givenArr));  // Output: [7, 22, 45, 9, 21, 3, 12]

Enter fullscreen mode Exit fullscreen mode
5. Using reduce() method:
const givenArr = [ 12, 3, 21, 9, 45, 22, 7];
const reverseArray = (arr) => {
    return arr.reduce((reversed, current) => [current, ...reversed], []);
}
console.log(reverseArray(givenArr));  // Output: [7, 22, 45, 9, 21, 3, 12]

Enter fullscreen mode Exit fullscreen mode
6. Using unshift() method:
const givenArr = [5, 2, 3, 7, 9, 15, 20];
const  reverseArray = (arr) => {
    let reversedArr = [];
    for (let i = 0; i < arr.length; i++) {
        reversedArr.unshift(arr[i]);
    }
    return reversedArr;
}
console.log(reverseArray(givenArr));  // Output: [20, 15, 9, 7, 3, 2, 5]

Enter fullscreen mode Exit fullscreen mode
7. Using a while loop (in-place modification):
const givenArr = [10, 6, 9, 3, 4, 5, 1];
const reverseArray = (arr) => {
    let start = 0;
    let end = arr.length - 1;
    while (start < end) {
        // Swap elements at start and end
        let temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;

        start++;
        end--;
    }
    return arr;
}
console.log(reverseArray(givenArr));  // Output: [1, 5, 4, 3, 9, 6, 10]

Enter fullscreen mode Exit fullscreen mode
8. Using recursion:
const givenArr = [10, 6, 9, 3, 4, 5, 1];
const reverseArray = (arr) =>  {
    if (arr.length === 0) {
        return arr;
    } else {
        return reverseArray(arr.slice(1)).concat(arr[0]);
    }
}
console.log(reverseArray(givenArr));  // Output: [1, 5, 4, 3, 9, 6, 10]
console.log("Original Array: ", givenArr);  // Output: Original Array: [10, 6, 9, 3, 4, 5, 1]
Enter fullscreen mode Exit fullscreen mode

AWS Q Developer image

Your AI Code Assistant

Generate and update README files, create data-flow diagrams, and keep your project fully documented. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →