javascript

Mezclar arreglo en JavaScript

Resumen: en este post te mostraré a mezclar los elementos de un arreglo en JavaScript, de tal manera que los items del array estén en un orden distinto, algo así como randomizar el arreglo o hacerlo aleatorio.

Voy a demostrarlo con ejemplos y con una demostración que podrás probar en línea.

Mezclar elementos de arreglo con JavaScript

El algoritmo es sencillo. Debemos recorrer todo el arreglo con un ciclo for, en cada paso obtener un índice / posición aleatoria, intercambiar ese valor con el índice actual y así hasta terminar.

Veamos el código fuente que permite “sacudir” un arreglo:

See the gist on github.

Utilizamos Math.random y Math.floor para obtener un índice aleatorio dentro de los límites del arreglo.

Guardamos el valor actual en temporal, luego ponemos el aleatorio en el actual y finalmente el temporal dentro del aleatorio.

Cabe mencionar que este método modifica internamente al arreglo (por eso no regresa nada; ya que en JS los arreglos se pueden modificar porque se pasa la referencia de los mismos).

Si no quieres que eso suceda, puedes crear otra variable para el arreglo usando Array.from por ejemplo. Evita hacer una simple asignación con = porque de igual manera te estarás refiriendo al mismo arreglo.

En los ejemplos queda más claro.

Ejemplo 1: mezclar arreglo sin respaldar

Veamos un ejemplo sencillo para agitar un arreglo en JavaScript:

See the gist on github.

Como ves, se llama al método pero no se espera su resultado, pues modifica al arreglo internamente.

Ejemplo 2: mezclar elementos de arreglo en JavaScript, respaldando arreglo

Puedes respaldar el arreglo asignando su valor a otra variable y eliminando la referencia. Como lo dije antes, esto se puede lograr usando el método Array.from.

Veamos el ejemplo:

See the gist on github.

En este caso respaldamos el arreglo en la variable cancionesMezcladas, y así el arreglo original llamado canciones queda intacto, lo cual se comprueba imprimiendo ambas variables después de haber llamado al método que hace aleatorio el arreglo.

Código completo y demostración

Para terminar dejo el código completo que permite randomizar los elementos de un arreglo en JS:

See the gist on github.

Puedes ejecutar el código aquí.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

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

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

18 horas hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

1 día hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

1 día hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

3 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

1 semana hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

1 semana hace

Esta web usa cookies.