#javascript #arrays #while-loop
#javascript #массивы #цикл while
Вопрос:
Я хочу получать случайные имена из nameArray
и каждый раз удалять этот элемент, чтобы в итоге у меня были все имена, а nameArray
пусто. В консоли ничего не отображается.
let i;
let nameArray = ['Chara','Lisette','Corine','Kevin','Carlee'];
while(i < nameArray.length){
let name = nameArray[ Math.floor( Math.random() * nameArray.length )];
console.log(name);
delete nameArray[i];
}
Комментарии:
1. Вы создали бесконечный цикл! Это утверждение
(i < nameArray.length)
всегда верно.
Ответ №1:
i
никогда не инициализируется и не обновляется, поэтому цикл while не имеет особого смысла. Вы можете попробовать это вместо:
let nameArray = ['Chara','Lisette','Corine','Kevin','Carlee'];
while(nameArray.length > 0) { // while the array is not empty
let i = Math.floor(Math.random() * nameArray.length); // pick a random element index
console.log(nameArray[i]); // print the element
nameArray.splice(i, 1); // remove the element from the array
}