Skip to content

Instantly share code, notes, and snippets.

@parzibyte
Created August 7, 2019 02:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parzibyte/b888211619022fa1dedc8aca84045ac4 to your computer and use it in GitHub Desktop.
Save parzibyte/b888211619022fa1dedc8aca84045ac4 to your computer and use it in GitHub Desktop.
/**
* Mezclar un arreglo en JavaScript
*
* Visita: https://parzibyte.me/blog
*/
// Nota: esta función modifica al arreglo
// internamente
const mezclarArreglo = arreglo => {
for (let i = arreglo.length - 1; i > 0; i--) {
let indiceAleatorio = Math.floor(Math.random() * (i + 1));
let temporal = arreglo[i];
arreglo[i] = arreglo[indiceAleatorio];
arreglo[indiceAleatorio] = temporal;
}
}
// Ejemplo 1
const mascotas = [
"Maggie",
"Panqué",
"Guayaba",
"Michi"
];
console.log("Mascotas original: ", mascotas);
mezclarArreglo(mascotas);
console.log("Mascotas mezclado: ", mascotas);
// Ejemplo 2, respaldando arreglo
const canciones = [
"I can't win",
"Hammer To Fall",
"Let's dance",
"Rock And Roll All Nite"
];
console.log("Canciones original: ", canciones);
const cancionesMezcladas = Array.from(canciones);
mezclarArreglo(cancionesMezcladas);
console.log("Canciones mezcladas: ", cancionesMezcladas);
console.log("Canciones original, de nuevo: ", canciones);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment