«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу эффективно перетасовать массив в JavaScript?

Как я могу эффективно перетасовать массив в JavaScript?

Опубликовано в 2025-03-04
Просматривать:667

How Can I Efficiently Shuffle an Array in JavaScript?

Shuffling Arrays с помощью Javascript

алгоритм перетасовки Fisher-Yates предлагает эффективный метод для перетасовки в JavaScript. С учетом случайного обмену элементами он гарантирует, что каждое возможное упорядочение имеет равный шанс на возникновение. var J, x, i; for (i = a.length-1; i> 0; i--) { j = math.floor (math.random () * (i 1)); x = a [i]; a [i] = a [j]; a [j] = x; } вернуть А; }

] Этот алгоритм итерации итерации через массив в обратном порядке, обмениваясь каждому элементу случайным элементом впереди его в массиве. Полученный массив перетасовывается из -за случайного характера свопов. ['1', '2', '3', '4', '5', '6', '7', '8', '9']; shuffle (myarray);

es6 версии

function shuffle(a) {
    var j, x, i;
    for (i = a.length - 1; i > 0; i--) {
        j = Math.floor(Math.random() * (i   1));
        x = a[i];
        a[i] = a[j];
        a[j] = x;
    }
    return a;
}

function shuffle (a) { для (let i = a.length-1; i> 0; i--) { const j = math.floor (math.random () * (i 1)); [a [i], a [j]] = [a [j], a [i]]; } вернуть А; }

прототип реализации

]

этот алгоритм может быть реализован как метод прототипа массива, чтобы облегчить прямой перетасование массивов:

var myArray = ['1','2','3','4','5','6','7','8','9'];
shuffle(myArray);

Эта реализация позволяет перетасовать массивы с помощью синтаксиса arr.shuffle (). ]

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3