我需要从数组中生成一个随机数,但排除一个索引并返回随机数的索引。
我试过这个:
function randNum(arr,excludeNum){
var randNumber = Math.floor(Math.random()*arr.length);
if(arr[randNumber]==excludeNum){
randNum(arr,excludeNum);
}else{
return randNumber;
}
}
alert(randNum([7, 10, 11],7));
但有时它会返回我希望它返回的数字,有时它会返回未定义的。
有什么问题?
最佳答案
这是因为当生成的随机数是您要排除的随机数时,您的函数不会返回任何内容。将 return
添加到 if 子句中的 randNum
函数调用。
function randNum(arr,excludeNum){
var randNumber = Math.floor(Math.random()*arr.length);
if(arr[randNumber]==excludeNum){
return randNum(arr,excludeNum);
}else{
return randNumber;
}
}
alert(randNum([7, 10, 11],7));
关于javascript - 从数组中生成一个随机索引但排除一个。 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19075461/