JavaScript:如何从数组中检索一个随机项(锚定到另一个项)

JavaScript: How to retrieve a random item (anchored to another item) from array?

本文关键字:随机 一个 另一个 数组 检索 JavaScript      更新时间:2023-09-26

我开始学习javascript中的简单内容。

我有一个带有多个文本字段的表单(html),用户必须在其中输入姓名(最多10个),然后单击按钮时能够生成两组5人。这里是我的例子:

<table>
<tr>
<td>
You <font color="red">*</font>
</td>
<td><input id="you"/></td>
<td><input id="yourpartner"/></td>
<td> Your Partner <br><font color="red">WARNING: Let it blank if it doesnt exist!</font></td>
</tr>
<td>Partners (1-2)</td>
<td><input id="s1dq" title="Partner 1" /></td>
<td><input id="s2dq" title="Partner 2" /></td>
<td><font color="red">WARNING: Let it blank if it doesnt exist!</font></td>
<tr>
<td>Partners (3-4)</td>
<td><input id="s3dq" title="Partner 3" /></td>
<td><input id="s4dq" title="Partner 4" /></td>
<td><font color="red">WARNING: Let it blank if it doesnt exist!</font></td>
</tr>
<tr>
<td>Partners (5-6)</td>
<td><input id="s5dq" title="Partner 5" /></td>
<td><input id="s6dq" title="Partner 6" /></td>
<td><font color="red">WARNING: Let it blank if it doesnt exist!</font></td>
</tr>
<tr>
<td>Partners (7-8)</td>
<td><input id="s7dq" title="Partner 7 em DuoQ." /></td>
<td><input id="s8dq" title="Partner 8 em DuoQ com o anterior." /></td>
<td><font color="red">WARNING: Let it blank if it doesnt exist!</font></td>
</tr>
<tr>
<td>Remaining People<br>
<font color="red">WARNING: One person per line!</font><br>
<font color="red">WARNING: Min 2 or Max 9 persons!</font></td>
<td><textarea id="people" rows="9" cols="16" title="1 person per line"></textarea>
</td>
</tr>
</table>

到目前为止,我将所有名称保存在一个数组中,但不知道这是否是解决此问题的最佳方法。

问题1:我需要从这个数组中获取名称,并在两组五个数组中随机分配(这里我想我需要另一个2数组)。但有一个小小的例外。当用户输入名称时,他可以决定是否将两个名称放在一起,以便它们可以在同一组中。

你能帮助我如何在两组之间随机分配他们吗?如果有人有伴侣,如何将他们放在同一组

问题2:例如,假设一个小组已经有四个人了。如果我随机得到一个人,他的用户想和另一个人在一起,显然其中一个人不能加入只有4个人的群,否则他们将分开。

你能帮我写一些代码吗?非常感谢。

JavaScript代码:我知道当我把剩下的人添加到我的数组中时会出现一些错误。我跳过了决策结构,因为这是目前最不重要的但给你。。

var randomTeam = new Array();
var firstTeam = new Array();
var secondTeam = new Array();
randomTeam[0] = document.getElementById('id="you"').value;
randomTeam[1] = document.getElementById('id="yourpartner"').value;
randomTeam[2] = document.getElementById('id="s1dq"').value;
randomTeam[3] = document.getElementById('id="s2dq"').value;
randomTeam[4] = document.getElementById('id="s3dq"').value;
randomTeam[5] = document.getElementById('id="s4dq"').value;
randomTeam[6] = document.getElementById('id="s5dq"').value;
randomTeam[7] = document.getElementById('id="s6dq"').value;
randomTeam[8] = document.getElementById('id="s7dq"').value;
randomTeam[9] = document.getElementById('id="s8dq"').value;
var lines = document.getElementById('id="people"').val().split(''n');;
for(var i = 0;i < lines.length;i++){
    randomTeam[i] = lines[i];
}

具有基本结构。JSFiddle

希望它能帮助你。你语法中的一个错误是

document.getElementById('id="you"').value;

应该是

document.getElementById('you').value;