例如,当用户连接到此应用程序时,他们会获得一个 userid var,然后将其插入到数组中。所以,我正在使用
chosenUser = usersOnlineArray[Math.round((Math.random()*usersOnlineArray.length))];
选择另一个随机用户。但我需要确保它不会选择他们个人分配的用户ID,这样他们就不会最终得到自己的用户ID。
我将如何使用该代码,但告诉它“记住,确保你不选择用户ID”
也许我可以做类似的事情
chosenUser = usersOnlineArray[Math.round((Math.random()*usersOnlineArray.length))];
if (chosenUser = userid)
{
chosenUser = usersOnlineArray[Math.round((Math.random()*usersOnlineArray.length))];
} else
{
//next part of mycode
}
也许这应该是一个while (chosenUser = userid)
万一它得到两次......
但是,我想如果有一种有效的方法来确保它不会首先选择它,我可以跳过所有这些。
抱歉,我不太确定应该如何表达这个问题,或者是否有一个我不知道的术语来指代我正在尝试做的事情。
using 数学.round()可能会导致返回“未定义”,因为您允许它选择没有索引的 usersOnlineArray.length 。使用数学.floor()反而。
您可以将不想匹配的项目移至数组末尾,然后从数组中随机选择除最后一个元素之外的元素:
//Users Array
var usersArray:Array = new Array("JoeID", "MaryID", "UserID", "JohnID", "SusanID");
//Find UserID And Push It To The End
usersArray.push(usersArray.splice(usersArray.indexOf("UserID"), 1));
//Randomly Select Companion From usersArray Except For UserID (Last Element)
var companion:String = usersArray[Math.floor(Math.random() * (usersArray.length - 1))];
trace(companion);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)