无限制地随机化数组,然后在Javascript中将其平均分割 var玩家=[]; var TotalPlayer=0 var team1=[]; var team2=[]; var命令={ “团队。加入”:{ 姓名:“加入随机团队。”, 描述:“任何加入的人都将加入一个团队”, 进程:函数(bot、msg、后缀){ players.push(msg.sender); 发送消息(msg.channel,players); bot.sendMessage(msg.channel,msg.sender+“已添加到随机团队选择中。”); 总玩家数+=1; bot.sendMessage(msg.channel,totalplayers) }, }, “团队随机”:{ 名称:“随机团队选择。”, 描述:“显示随机团队中随机团队选择的所有玩家。”, 进程:函数(bot、msg、后缀){ var playcount=0; bot.sendMessage(msg.channel,“tp:+totalplayers);//检查 bot.sendMessage(msg.channel,“i:+playcount);//检查 对于(playcount=0;playcount

无限制地随机化数组,然后在Javascript中将其平均分割 var玩家=[]; var TotalPlayer=0 var team1=[]; var team2=[]; var命令={ “团队。加入”:{ 姓名:“加入随机团队。”, 描述:“任何加入的人都将加入一个团队”, 进程:函数(bot、msg、后缀){ players.push(msg.sender); 发送消息(msg.channel,players); bot.sendMessage(msg.channel,msg.sender+“已添加到随机团队选择中。”); 总玩家数+=1; bot.sendMessage(msg.channel,totalplayers) }, }, “团队随机”:{ 名称:“随机团队选择。”, 描述:“显示随机团队中随机团队选择的所有玩家。”, 进程:函数(bot、msg、后缀){ var playcount=0; bot.sendMessage(msg.channel,“tp:+totalplayers);//检查 bot.sendMessage(msg.channel,“i:+playcount);//检查 对于(playcount=0;playcount,javascript,Javascript,teams.join效果很好,但我加入其中是为了展示teamsteams的整个部分。random应该使用玩家数组,将玩家(用户)在数组中的位置随机化,然后将其分发,以便玩家[0]在第1队,玩家[1]在第2队(等等)直到没有更多的用户。本质上,这是一个列表,并将其随机分为两组。我在测试时意识到的主要问题是,playcount不会增加(我已经尝试了,while和Do,直到循环无效。这是不正确的: var players = []; var totalplayers = 0 var team1 = [

teams.join
效果很好,但我加入其中是为了展示
teams
teams的整个部分。random应该使用
玩家
数组,将玩家(用户)在数组中的位置随机化,然后将其分发,以便
玩家[0]
在第1队,
玩家[1]
在第2队(等等)直到没有更多的用户。本质上,这是一个列表,并将其随机分为两组。我在测试时意识到的主要问题是,
playcount
不会增加(我已经尝试了,while和Do,直到循环无效。

这是不正确的:

var players = [];
var totalplayers = 0
var team1 = [];
var team2 = [];

var commands = {
"teams.join": {
    name: "Join random team.",
    description: "Anybody who joins will be put to a team",
    process: function(bot, msg, suffix) {   
        players.push(msg.sender);
        bot.sendMessage(msg.channel, players);
        bot.sendMessage(msg.channel, msg.sender + " has been added to the random team selection.");
        totalplayers += 1;
        bot.sendMessage(msg.channel, totalplayers)
    },
},
"teams.random": {
    name: "Random team selection.",
    desciption: "Displays all players in random team selection in a random team.",
    process: function(bot, msg, suffix) {
        var playcount = 0;
        bot.sendMessage(msg.channel, "tp: " + totalplayers); // Check
        bot.sendMessage(msg.channel, "i: " + playcount); // Check
        for (playcount = 0; playcount < totalplayers; playcount++) { 
            //bot.sendMessage(msg.channel, "Looping?") // Check
            var Rteam = players[Math.floor(Math.random() * players.length)];
            //bot.sendMessage(msg.channel, Rteam); // Check

            if (playcount = 0 || 2 || 4 || 6 || 8) {
                team1.push(Rteam);
                bot.sendMessage(msg.channel, "isEven = true"); // Check
                playcount + 1;
            } else if (playcount = 1 || 3 || 5 || 7 || 9) {
                team2.push(Rteam);
                bot.sendMessage(msg.channel, "isEven = false"); // Check
                playcount + 1;
            } 
        playcount + 1;  
        var roll = players.splice(Rteam, 1);
        var yourNumber = roll[totalplayers];
        //i += 1;
        } 
        bot.sendMessage(msg.channel, "Team 1: " + team1);
        bot.sendMessage(msg.channel, "Team 2: " + team2);
    },  
}
有两个问题:首先,您使用
=
,这是赋值,当它应该是
=
进行比较时。其次,您不能使用
|
这种方式来比较多个元素,您需要分别对每个项目进行比较。因此,它应该是:

if (playcount = 0 || 2 || 4 || 6 || 8) {
但如果您想知道
playcount
是否为偶数,您可以执行以下操作:

if (playcount == 0 || playcount == 2 || playcount == 4 || playcount == 6 || playcount == 8) {
您不需要使用
else,如果
用于其他测试,只需使用
else
,因为只有两种可能性

包含以下内容的行:

if (playcount % 2 == 0)
什么都不要做。你根本不需要这个,因为你在
for()
标题中增加
playcount


顺便说一句,你的代码中没有任何东西可以阻止你多次选择同一名球员,并将他们添加到不同的球队。

我同意巴尔马关于OP原始代码的评论。 但为了完整性起见,这里有一个示例代码,用于将团队一分为二,并在每个团队中随机放置玩家

playcount + 1;
输出:

var players = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    team1 = [],
    team2 = [],
    i;

while (players.length > 0) {
    i = Math.floor(Math.random() * players.length);
    if (players.length % 2 === 0) {
        team1.push(players[i]);
    } else {
        team2.push(players[i]);
    }
    players.splice(i, 1);
}

console.log(team1, team2);

在浏览器控制台中运行代码几次,您将在每个数组中获得不同的随机数。

如果您只发布与您的问题相关的代码,那就太好了。如果您想知道如何拆分数组,请发布代码,表明您正试图这样做。我们可以更轻松地提供帮助。
playcount+1
没有任何作用。它可以计算延迟总和,但不放在任何地方。
var roll=players.splice(Rteam,1)
的目的是什么?
[10, 4, 1, 6, 5] [3, 8, 2, 9, 7]