Я сделал это, чтобы сгенерировать 10 случайных чисел без дубликатов, но это не работает. Иногда он генерирует дубликаты, но я не знаю почему. Может кто-нибудь, пожалуйста, скажите мне, что не так с кодом, есть ли у него что-то с indexOf?Создайте 10 случайных чисел, без дубликатов
var minArray:Array = new Array;
var fortsett:Boolean = true;
for(var i=0;i<10;i++) {
while(fortsett) {
var valgtTall=1 + Math.round(Math.random()*(34-1));
if(minArray.indexOf(valgtTall,0) >= 0) {
fortsett=true;
trace(valgtTall + " er opptatt. Finner nytt...");
}
else {
fortsett=false;
}
}
minArray.push(valgtTall);
trace(valgtTall);
fortsett=true;
}
это работает правильно для меня. Он никогда не производит дубликатов. –
Ваш код выглядит отлично, удалите эту строку 'trace (valgtTall +" er opptatt. Finner nytt ... ")', которые дают иллюзию, которая генерирует дублированные значения. – akmozo
Вы должны «трассировать (minArray)», чтобы определить, действительно ли дубликаты повторяются после завершения вашего кода. Я говорю, что их не должно быть, вы отфильтровываете их, проверяя 'indexOf()' правильно. – Vesper