我有一个名为
..。从那里,我想检索一个随机用户并将其传递。如果选择的用户与
我需要函数重新开始,这样它就不会返回
这也是
..。现在,我的函数无论如何都会返回它们。
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();来获取函数选择的用户。在这种情况下,它需要是"user2“。如果不是,则意味着
randomRecipient == clientNickname我让控制台打印了一个错误。它现在就是这么做的。
发布于 2016-07-06 00:41:38
您可以通过删除重复的元素来简化问题。示例:
var temporaryRandomUserArray = randomUserArray.filter(function(ele) {
return !(ele === clientNickname); // keep if ele not equal to clientNickname
});
temporaryRandomUserArray[Math.floor((Math.random() * randomUserArray.length) + 0)];
...
..像这样的东西是整洁和清晰的。不需要递归函数调用。
https://stackoverflow.com/questions/38208274
复制相似问题