Respuesta corta:
let list = [1, 2, 3, 4, 5, 6, 7, 8, 9]list = list.sort(() = Math.random() - 0.5)
Respuesta larga:
Tuve la necesidad de mezclar los elementos en una matriz de JavaScript.
En otras palabras, quería remezclar los elementos de la matriz, para tenerlos en un orden diferente al anterior.
Partiendo de una matriz como ésta:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Quería algo diferente cada vez que realizaba la operación, como esto:
[4, 8, 2, 9, 1, 3, 6, 5, 7][5, 1, 2, 3, 7, 4, 9, 6, 8][3, 1, 4, 7, 8, 6, 2, 9, 5]
Este es el proceso que se me ocurrió. Dado el array list
:
const list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
Podemos llamar al sort()
método, que acepta una función que devuelve un valor entre -0,5 y 0,5:
list.sort(() = Math.random() - 0.5)
Esta función se ejecuta para cada elemento de la matriz. Puedes pasar 2 elementos de la matriz, como esto: list.sort((a, b) = Math.random() - 0.5)
pero en este caso no los estamos usando. Si el resultado de esta operación es 0, el elemento a
se coloca en un índice menor que b
, y lo contrario si el resultado es 0. Que dia se celebra hoy
Puedes leer todos los detalles sobre Array.sort() aquí .
Llamar sort()
a una lista no cambia el valor de la matriz original.
Ahora puedes asignar el resultado de esta operación a una nueva variable, de esta manera:
const shuffled = list.sort(() = Math.random() - 0.5)
o también puedes sobrescribir la lista existente, si la declaras como let
variable:
let list = [1, 2, 3, 4, 5, 6, 7, 8, 9]list = list.sort(() = Math.random() - 0.5)
Tips para principiantes de JavaScript
Tal vez te puede interesar:
- Cómo generar un número aleatorio entre dos números en JavaScript
- Cómo esperar el evento DOM listo en JavaScript simple
- Cómo determinar si una fecha es hoy en JavaScript
- Cómo contar el número de propiedades en un objeto JavaScript
Cómo mezclar elementos en una matriz de JavaScript
Tuve la necesidad de mezclar los elementos en una matriz de JavaScript. Respuesta larga: Respuesta larga: Respuesta corta: Respuesta corta:
programar
es
https://aprendeprogramando.es/static/images/programar-como-mezclar-elementos-en-una-matriz-de-javascript-2355-0.jpg
2024-11-08
Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente