![](/img/trans.png)
[英]Javascript is adding 2 objects to array instead of one. One is undefined
[英]Generate one random index from an array but exclude one. javascript
我需要從一個數組生成一個隨機數,但要排除一個索引並返回該隨機數的索引。
我嘗試了這個:
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));
但是有時它會返回我想要它返回的數字,有時它返回的是不確定的。
問題是什么?
這是因為當生成的隨機數是您要排除的數字時,您的函數不返回任何內容。 在if子句中向randNum
函數調用添加return
。
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));
您需要在randNum(arr,excludeNum);
前面randNum(arr,excludeNum);
return
關鍵字randNum(arr,excludeNum);
。
因為您使用的是地板,最終堆棧會填滿。 (我也認為你錯過了回報)
為什么不從數組中刪除該數字並在其余數字中選擇一個隨機索引呢?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.