Задача: Нужно реализовать функцию, которая принимает массив и перемешивает элементы принятого массива в случайном порядке.
Вот пример функции:
function randomShuffle(array) { // Копируем массив, чтобы не изменять исходный const shuffledArray = array.slice(); // Перемешиваем массив for (let i = shuffledArray.length - 1; i > 0; i--) { // Выбираем случайный индекс от 0 до i const j = Math.floor(Math.random() * (i + 1)); // Меняем местами элементы shuffledArray[i] и shuffledArray[j] [shuffledArray[i], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i]]; } return shuffledArray; }
Пример использования:
const originalArray = [1, 2, 3, 4, 5]; const shuffledArray = randomShuffle(originalArray); console.log(shuffledArray); // Выведет массив, например: [3, 5, 1, 4, 2] console.log(originalArray); // Исходный массив остается неизменным: [1, 2, 3, 4, 5]
Этот код создает копию исходного массива и перемешивает её, чтобы не изменять оригинальный массив, по алгоритму Фишера-Йетса.
Это гарантирует равномерное распределение всех возможных перестановок элементов массива.