Barajando arrays con el algoritmo de Fisher-Yates

JavaScriptJavaScriptBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28615{{"Barajando arrays con el algoritmo de Fisher-Yates"}} javascript/data_types -.-> lab-28615{{"Barajando arrays con el algoritmo de Fisher-Yates"}} javascript/arith_ops -.-> lab-28615{{"Barajando arrays con el algoritmo de Fisher-Yates"}} javascript/comp_ops -.-> lab-28615{{"Barajando arrays con el algoritmo de Fisher-Yates"}} javascript/loops -.-> lab-28615{{"Barajando arrays con el algoritmo de Fisher-Yates"}} javascript/array_methods -.-> lab-28615{{"Barajando arrays con el algoritmo de Fisher-Yates"}} javascript/spread_rest -.-> lab-28615{{"Barajando arrays con el algoritmo de Fisher-Yates"}} end

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.