Как перетасовать массив чисел в JavaScript: методы и примеры

Чтобы перетасовать массив чисел в JavaScript, вы можете использовать несколько методов. Вот некоторые из них:

  1. Перетасовка Фишера-Йейтса (он же Кнут):
    Этот алгоритм случайным образом перемешивает элементы массива. Вот реализация:
function shuffleArray(array) {
  for (let i = array.length - 1; i > 0; i--) {
    const j = Math.floor(Math.random() * (i + 1));
    [array[i], array[j]] = [array[j], array[i]];
  }
  return array;
}
  1. Использование метода sort():
    Вы можете использовать метод sort()в сочетании с пользовательской функцией сравнения, которая возвращает случайное значение. Вот пример:
function shuffleArray(array) {
  return array.sort(() => Math.random() - 0.5);
}
  1. Использование метода map():
    Вы можете использовать метод map()вместе с Math.random()функция для присвоения случайного значения каждому элементу, а затем сортировки массива. Вот пример:
function shuffleArray(array) {
  return array.map(a => [Math.random(), a])
              .sort((a, b) => a[0] - b[0])
              .map(a => a[1]);
}