Чтобы перетасовать массив чисел в JavaScript, вы можете использовать несколько методов. Вот некоторые из них:
- Перетасовка Фишера-Йейтса (он же Кнут):
Этот алгоритм случайным образом перемешивает элементы массива. Вот реализация:
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;
}
- Использование метода
sort():
Вы можете использовать методsort()в сочетании с пользовательской функцией сравнения, которая возвращает случайное значение. Вот пример:
function shuffleArray(array) {
return array.sort(() => Math.random() - 0.5);
}
- Использование метода
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]);
}