Barajando arrays con el algoritmo de Fisher-Yates

Beginner

This tutorial is from open-source community. Access the source code

Introducción

En este laboratorio, exploraremos el algoritmo de Fisher-Yates y su implementación en JavaScript. En particular, nos centraremos en barajar arrays utilizando este algoritmo. Al final de este laboratorio, tendrás una mejor comprensión de cómo funciona el algoritmo de Fisher-Yates y cómo se puede utilizar para aleatorizar el orden de los elementos en un array.

Algoritmo para barajar arrays

Para barajar un array en JavaScript, utiliza el algoritmo de Fisher-Yates. Este algoritmo reordena los elementos del array de forma aleatoria y devuelve un nuevo array.

Para comenzar a practicar la codificación, abre la Terminal/SSH y escribe node.

Aquí está el código para el algoritmo de Fisher-Yates:

const shuffle = ([...arr]) => {
  let m = arr.length;
  while (m) {
    const i = Math.floor(Math.random() * m--);
    [arr[m], arr[i]] = [arr[i], arr[m]];
  }
  return arr;
};

Para barajar un array, pasa el array a la función shuffle y devolverá el array barajado. Por ejemplo:

const foo = [1, 2, 3];
shuffle(foo); // devuelve [2, 3, 1], y foo sigue siendo [1, 2, 3]

Resumen

¡Felicidades! Has completado el laboratorio de barajar arrays. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.