Перемешивание массивов с использованием алгоритма Фишера-Йетса

Beginner

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

Введение

В этом лабораторном задании мы изучим алгоритм Фишера-Йетса и его реализацию на JavaScript. В частности, мы сосредоточимся на перемешивании массивов с использованием этого алгоритма. В конце этого лабораторного задания вы будете лучше понимать, как работает алгоритм Фишера-Йетса и как его можно использовать для случайной перестановки элементов в массиве.

Алгоритм перемешивания массива

Для перемешивания массива в JavaScript используйте алгоритм Фишера-Йетса. Этот алгоритм случайным образом переупорядочивает элементы массива и возвращает новый массив.

Для начала практики программирования откройте Терминал/SSH и введите node.

Вот код для алгоритма Фишера-Йетса:

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;
};

Для перемешивания массива передайте массив в функцию shuffle, и она вернет перемешанный массив. Например:

const foo = [1, 2, 3];
shuffle(foo); // возвращает [2, 3, 1], а foo по-прежнему [1, 2, 3]

Резюме

Поздравляем! Вы завершили лабораторную работу по перемешиванию массива. Вы можете практиковаться в более многих лабораторных работах в LabEx, чтобы улучшить свои навыки.