PiCoderman
@PiCoderman

Как сделать случайный порядок в массиве?

Существует массив :
var M = [0,1,2,3,4,5,6,7,8,9];
Нужно случайно изменить порядок расстановки значений, чтобы получилось что-то вроде этого :
[4,6,1,3,8,2,5,7,9].
  • Вопрос задан
  • 5357 просмотров
Решения вопроса 1
function shuffleArray(array) {
    for (var i = array.length - 1; i > 0; i--) {
        var j = Math.floor(Math.random() * (i + 1));
        var temp = array[i];
        array[i] = array[j];
        array[j] = temp;
    }
    return array;
}

var M = [0,1,2,3,4,5,6,7,8,9];
M = shuffleArray(M);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
SagePtr
@SagePtr
Еда - это святое
Самый простой способ:
[1,2,3,4,5,6].sort(function(){ return 0.5-Math.random() });
Ответ написан
GM2mars
@GM2mars
Как вариант
function shuffle(arr) {
	var newArr=[],
		count=arr.length
		i=null,
		rnd=null;

	for (i=0; i<count; i++) {
		rnd=~~(Math.random() * arr.length);
		newArr.push(arr[rnd]);
		arr.splice(rnd,1);
	}
	return newArr;
}
console.log(shuffle(m));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы