Cómo invertir un array en JavaScript

Javascript

En este tutorial vamos a ver cómo puedes cambiar de orden los elementos de un array de modo que estén invertidos. Podrías usar un bucle e invertir el array manualmente, aunque como veremos, en JavaSscript existen formas mucho más rápidas de lograr nuestro objetivo:

Para empezar, vamos a partir del siguiente array al que llamaremos letras:

const letras = ['a', 'b', 'c', 'd','e'];

Cómo invertir el propio array

Un método efectivo de inversión podría consistir en usar el método reverse(), que alterará el propio array sobre el que se ejecute. De este modo, podríamos declarar el array como una constante y no necesitaríamos reasignar el resultado del método:

const letras = ['a', 'b', 'c', 'd','e'];
letras.reverse();

console.log(letras);

El resultado de la función anterior será un array con los valores ['e','d', 'c', 'b', 'a'].

Cómo obtener un nuevo array invertido

Si quieres asignar el resultado a otra variable o constante, puedes usar el operador spread ..., de modo que podamos asignar los elementos del array a un nuevo array:

const letras = ['e','d', 'c', 'b', 'a'];
const letrasInvertidas = [...letras].reverse();

console.log(letras);
console.log(letrasletrasInvertidas);

De esta forma, la constante letras seguirá manteniendo los elementos ['a', 'b', 'c', 'd','e'],  mientras que la constante letrasInvertidas contendrá los elementos ['e','d', 'c', 'b', 'a'].

Todavía existe otra forma mediante la cual puedes invertir un array y obtenerlo en una nueva varaible sin la necesidad de usar el operador spread. Consiste en usar el método slice() sin pasarle ningún parámetro, justo antes de invertir el array:

const letras = ['a', 'b', 'c', 'd','e'];
const letrasInvertidas = letras.slice().reverse();

console.log(letras);
console.log(letrasletrasInvertidas);

La constante letras mandentrá los elementos ['a', 'b', 'c', 'd','e'],  mientras que la constante letrasInvertidas contendrá los elementos ['e','d', 'c', 'b', 'a'].

Y esto ha sido todo.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”