javascript

2 maneras de invertir arreglos en JavaScript

Hoy vamos a ver cómo invertir un arreglo en JavaScript de dos maneras: con un método manual que usa ciclos e intercambio de variables, y con uno que invierte el arreglo con funciones nativas.

Invertir arreglo en JavaScript

Voy a mostrar dos maneras de invertir el arreglo porque, aunque ya existe la función nativa, es importante analizar (sobre todo si eres estudiante) algunos algoritmos y ejercicios con arreglos de JavaScript.

Método 1: con método reverse

Los arreglos en JavaScript (sin importar el tipo) ya cuentan con un método llamado reverse, el cual invierte el arreglo directamente, sin regresar nada. Su forma de uso es:

elArreglo.reverse();

Al final dejaré un ejemplo.

Método 2: algoritmo manual para invertir un arreglo en JavaScript

Ahora veamos el enfoque en donde intercambiamos valores dentro del arreglo. Lo que hacemos es recorrer el arreglo desde 0 hasta su mitad, e ir intercambiando el primer elemento con el último, el segundo con el penúltimo y así sucesivamente.

const invertirManual = arreglo => {
  // Guardar de una vez la longitud para hacer más legible el código
  let longitudDelArreglo = arreglo.length;
  // Recorrer arreglo hasta la mitad. Si es impar, se va al entero anterior más 
  // próximo. P. ej. 5 / 2 => 2
  for (let x = 0; x < longitudDelArreglo / 2; x++) {
    // Respaldar el valor actual
    let temporal = arreglo[x];
    // Calcular el índice contrario, es decir, el del otro lado de la mitad; el cual irá descendiendo
    let indiceContrario = longitudDelArreglo - x - 1;
    // En el actual ahora está el del otro lado
    arreglo[x] = arreglo[indiceContrario];
    // Y en el otro lado, el que estaba originalmente en el actual
    arreglo[indiceContrario] = temporal;
  }

  // No regresamos nada porque ya modificamos al arreglo internamente
};

Utilizo una variable temporal para guardar el elemento que se intercambia. Al final, el arreglo estará invertido y no tengo que regresarlo, pues está modificado internamente.

Nota: no te confundas, en el código utilizo las funciones flecha.

Probar maneras de invertir arreglos con JS

Voy a poner todo el código junto y a probar que realmente funciona. El código queda así:

/**
 * Dos métodos para invertir arreglos en JavaScript:
 * algoritmo que intercambia valores dentro del arreglo y otro
 * que usa una función nativa de los arreglos en JavaScript
 * 
 * @author parzibyte
 * Visita: parzibyte.me/blog
 */const invertirManual = arreglo => {
  // Guardar de una vez la longitud para hacer más legible el código
  let longitudDelArreglo = arreglo.length;
  // Recorrer arreglo hasta la mitad. Si es impar, se va al entero anterior más 
  // próximo. P. ej. 5 / 2 => 2
  for (let x = 0; x < longitudDelArreglo / 2; x++) {
    // Respaldar el valor actual
    let temporal = arreglo[x];
    // Calcular el índice contrario, es decir, el del otro lado de la mitad; el cual irá descendiendo
    let indiceContrario = longitudDelArreglo - x - 1;
    // En el actual ahora está el del otro lado
    arreglo[x] = arreglo[indiceContrario];
    // Y en el otro lado, el que estaba originalmente en el actual
    arreglo[indiceContrario] = temporal;
  }

  // No regresamos nada porque ya modificamos al arreglo internamente
};

const lenguajes = ["PHP", "C", "C#", "Rust", "Java", "JavaScript", "C++", "Go"];
// Imprimir arreglo original
console.log("Original: ", lenguajes);
// Invertir con método manual
invertirManual(lenguajes);
console.log("Invertido manualmente: ", lenguajes);

// Invertir con método existente
lenguajes.reverse();
console.log("Invertido con reverse: ", lenguajes);

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.