"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puedo barajar eficientemente una matriz en JavaScript?

¿Cómo puedo barajar eficientemente una matriz en JavaScript?

Publicado el 2025-03-04
Navegar:947

How Can I Efficiently Shuffle an Array in JavaScript?

arrastrando matrices con JavaScript

El algoritmo Fisher-Yates Shuffle ofrece un método efectivo para cambiar las matrices en JavaScript. Al intercambiar elementos aleatorios, garantiza que cada pedido posible tiene la misma posibilidad de ocurrir.

implementación de algorithm

el algoritmo de shuffle Fisher-y-shuffle puede implementarse de la siguiente manera:

function shuffle(a) {
    var j, x, i;
    for (i = a.length - 1; i > 0; i--) {
        j = Math.floor(Math.random() * (i   1));
        x = a[i];
        a[i] = a[j];
        a[j] = x;
    }
    return a;
}

Este algoritmo itera a través de la matriz en orden inverso, intercambiando cada elemento con un elemento aleatorio por delante en la matriz. La matriz resultante se baraja debido a la naturaleza aleatoria de los swaps.

use

la función de shuffle se puede usar para barajar una matriz usando la siguiente sintaxis:

var myArray = ['1', '2', '3', '4', '5', '6', '7', '8', '9']; shuffle (myArray);
var myArray = ['1','2','3','4','5','6','7','8','9'];
shuffle(myArray);

es6 versión

El algoritmo Fisher-yates se ha optimizado en es6:

function shuffle (a) { para (dejar i = a.length-1; i> 0; i--) { const j = math.floor (math.random () * (i 1)); [a [i], a [j]] = [a [j], a [i]]; } regresar a; }
var myArray = ['1','2','3','4','5','6','7','8','9'];
shuffle(myArray);

Implementation Prototype

Este algoritmo se puede implementar como un método de prototipo de matriz para facilitar el desplazamiento directo de las matrices:

object.defineProperty (array.pototype, 'shuffle', {{ valor: function () { para (dejar i = this.length-1; i> 0; i--) { const j = math.floor (math.random () * (i 1)); [este [i], este [j]] = [this [j], este [i]]; } devolver esto; } });
var myArray = ['1','2','3','4','5','6','7','8','9'];
shuffle(myArray);
Esta implementación permite que las matrices se barajen usando la sintaxis arr.shuffle ().

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3