我有一個用戶數組叫randomUserArray
。從那裏我想檢索一個隨機的用戶並將其傳遞。如果所選用戶與clientNickname
相同,則需要重新啓動該功能,以便它不會返回也是clientNickname
的randomRecipient
。無論如何,我的函數將返回它們。循環功能的內部,直到達到目標
function randomRecipientCalc (clientNickname){
var randomRecipient = randomUserArray[Math.floor((Math.random() * randomUserArray.length) + 0)];
while (randomRecipient == clientNickname) {
randomRecipient = randomUserArray[Math.floor((Math.random() * randomUserArray.length) + 0)];
}
return randomRecipient;
}
比方說,我有兩個用戶在我的陣列(至極將是最小的,在任何給定時間)
`var randomUserArray = ["user1","user2"]`
和「USER1」也正在客戶端
var clientNickname = "user1"
然後我用
var Recipient = randomRecipientCalc();
得到你ser選擇的功能。這種情況是否需要成爲「user2」。 如果它不是,意思
randomRecipient == clientNickname
我有控制檯打印錯誤。它現在確實如此。
If(randomRecipient == clientNickname){return randomRecipientCalc(clientNickname);} else {return randomRecipient) – user3791775
您可以使用'do'-'while'循環來簡化它,但它正在工作嗎?請發佈您的輸入不起作用。 – Bergi
請注意,您將得到一個無限循環(或超過最大堆棧範圍,帶有@ user3791775的答案)和單元素用戶數組。 – nrabinowitz