Javascript 在while循环中迭代时从数组中删除元素

Javascript 在while循环中迭代时从数组中删除元素,javascript,arrays,while-loop,Javascript,Arrays,While Loop,我想从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

我想从
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];
 }
让我来;
让nameArray=['Chara','Lisette','Corine','Kevin','Carlee'];
while(i
i
从未初始化或更新,因此while循环没有太大意义。 您可以尝试以下方法:

让nameArray=['Chara'、'Lisette'、'Corine'、'Kevin'、'Carlee'];
while(nameArray.length>0){//当数组不为空时
设i=Math.floor(Math.random()*nameArray.length);//选择一个随机元素索引
log(nameArray[i]);//打印元素
nameArray.splice(i,1);//从数组中删除元素
}

i
从未初始化或更新,因此while循环没有太大意义。 您可以尝试以下方法:

让nameArray=['Chara'、'Lisette'、'Corine'、'Kevin'、'Carlee'];
while(nameArray.length>0){//当数组不为空时
设i=Math.floor(Math.random()*nameArray.length);//选择一个随机元素索引
log(nameArray[i]);//打印元素
nameArray.splice(i,1);//从数组中删除元素
}

你做了一个无限循环!此语句
(i
总是正确的。您创建了一个无限循环!此语句
(i
始终正确。