Сообщение от daniil_angel
|
как сделать так, чтобы цифры в массиве не повторялись, т.е. чтоб каждая цифра была уникальна?
|
Создать массив уникальных значений, random формирует индекс этого массива.
После 9 проходов ведь все равно будет повторение. Чтобы не проверять ранее сформированного значения, можно перемешивать массив, затем извлекать из него последний элемент, возвращая его, таки образом он уже не будет повторен гарантировано:
<script>
var a = [1,2,3,4,5,6,7,8,9];
Array.prototype.shuffle = function() {
for (var i = this.length - 1; i > 0; i--) {
var num = Math.floor(Math.random() * (i + 1)),
d = this[num];
this[num] = this[i];
this[i] = d;
}
return this;
}
function rnd() {
if(a.length) {
a.shuffle();
return a.pop()
} else return 0;
}
</script>
<button onclick="alert(rnd())">GO</button>