У меня есть массив пользователей под названием randomUserArray
. Оттуда я хочу получить случайного пользователя и передать его. Если выбранный пользователь совпадает с clientNickname
, мне нужна функция, чтобы начать работу, поэтому она не возвращает randomRecipient
, а также clientNickname
. Сейчас моя функция вернет их в любом случае.Looping внутри функции до достижения цели
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». Если ins't, то есть
randomRecipient == clientNickname
У меня есть консольная печать об ошибке. Это происходит прямо сейчас.
Если (randomRecipient == clientNickname) {return randomRecipientCalc (clientNickname);} else {return randomRecipient) – user3791775
Вы можете упростить это, используя цикл 'do'-'while', но он работает? Пожалуйста, разместите свой ввод, который не работает. – Bergi
Обратите внимание, что вы получите бесконечный цикл (или максимальный диапазон стека, с ответом @ user3791775) с одноэлементным массивом пользователей. – nrabinowitz