var i = 0;
var count;
var names = [
"Stefon",
"Garret",
"Brandon"
];
function GetRandomInt(){
return Math.floor(Math.random()*i+1);
}
function CallWinner(){
var ID = GetRandomInt();
document.write("<hr>"+names[ID]+" has won with the ID of "+id+"!");
}
do {
i++;
for(count=0;i<=names.length;){
count++;
document.write(names[count]+" has been assigned to the raffle ID, "+count+"<br>");
}
} while (i<=names.length);
По какой-то причине это не работает, это действует как бесконечный цикл или, возможно, происходит сбой вкладки, он работает, но затем он вызывает сбой вкладки. Пожалуйста помоги.
Посмотрите внимательно на for(count=0;i<=names.length;). Ваше условие i<=names.length всегда будет выполняться => бесконечный цикл
Я, честно говоря, не понимаю, какова должна быть логика этих вложенных циклов while и for, и у меня есть подозрения, как и у вас. Ваш цикл for увеличивает count, но использует i в условии, что вызывает бесконечный цикл. Прочтите снова о циклах и переосмыслите эту концепцию.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


document.write - это документ. Неверный. Пожалуйста, используйте что-нибудь более современное и менее запутанное. Эта функция пытается записать в текущий документ. Если документ уже был обработан, он будет заменен пустым с вашим аргументом. Вы этого не хотите; вместо этого используйте правильные методы DOM.
Ваша функция GetRandomInt нарушена; он должен возвращать случайный доступный индекс в массиве, а не статическое число.
Попробуйте вместо этого что-нибудь вроде этого:
const names = [
"Stefon",
"Garret",
"Brandon"
];
function GetRandomIndex() {
return Math.floor(Math.random() * names.length);
}
function CallWinner() {
const index = GetRandomIndex();
const hr = document.body.appendChild(document.createElement('hr'));
hr.textContent = names[index] + " has won with the ID of " + index + "!";
}
names.forEach((name, count) => {
const div = document.body.appendChild(document.createElement('hr'));
div.textContent = name + " has been assigned to the raffle ID, " + count;
});
CallWinner();
Индекс в
lengthневерен, иfor-loop, использующийi, а неcount, также неверен!