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

时间:2013-11-22 02:31:19

标签: javascript arrays forms random

我开始在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:例如假设一个小组已经有四个人。如果我找到一个用户希望与另一个人保持联系的随机人,显然其中一个人不能加入只有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];
}

1 个答案:

答案 0 :(得分:0)

具有基本结构。 JSFiddle

希望它会对你有所帮助。语法中的一个错误是

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

应该是

document.getElementById('you').value;