кодесурса
«JavaScript

JavaScript: случайное расположение или перемешивание массива

script1adsense2code
script1adsense3code

Массив JavaScript: упражнение 17 с решением

Напишите программу на JavaScript для перемешивания массива.

Пример решения:

HTML-код:

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Shuffle an array</title>
</head>
<body>
</body>
</html>

Код JavaScript:

function shuffle(arra1) {
    var ctr = arra1.length, temp, index;
// While there are elements in the array
    while (ctr > 0) {
// Pick a random index
        index = Math.floor(Math.random() * ctr);
// Decrease ctr by 1
        ctr--;
// And swap the last element with it
        temp = arra1[ctr];
        arra1[ctr] = arra1[index];
        arra1[index] = temp;
    }
    return arra1;
}
var myArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(shuffle(myArray));

Пример вывода:

 [5,3,0,9,8,2,1,4,7,6]

Блок - схема:

«Блок-схема:

Версия ES6:

function shuffle(arra1) {
    let ctr = arra1.length;
    let temp;
    let index;
    // While there are elements in the array
    while (ctr > 0) {
// Pick a random index
        index = Math.floor(Math.random() * ctr);
// Decrease ctr by 1
        ctr--;
// And swap the last element with it
        temp = arra1[ctr];
        arra1[ctr] = arra1[index];
        arra1[index] = temp;
    }
    return arra1;
}
const myArray = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(shuffle(myArray));

Демонстрация в реальном времени:

См. Pen JavaScript. Произвольное расположение или перемешивание массива - array-ex-17 с помощью w3resource ( @ w3resource ) в CodePen .


Улучшите этот пример решения и опубликуйте свой код через Disqus

Предыдущий: Напишите программу на JavaScript, чтобы найти високосные годы из заданного диапазона лет
Далее: написать программу на JavaScript для выполнения бинарного поиска.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code