2013-11-22 48 views
0

我開始在javascript中學習簡單的東西。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]; 
} 
+0

顯示javascript代碼太... – aldanux

+0

你需要你寫的代碼之前得到的邏輯。你如何解決問題2? – Christophe

+0

Christophe我不知道如何解決它,這就是爲什麼我在這裏。 我需要一些東西來告訴我一件物品與另一件物品相關聯。不知道如何... aldanux抱歉完全忘記了。記住用戶可能會或可能不會創建合作伙伴。 –

回答

0

JSFiddle

希望它能幫助你。在你的語法錯誤之一是

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

應該

document.getElementById('you').value; 
+0

哇!不知道我們能做出這樣: randomTeam [0] = [。的document.getElementById( '你')值的document.getElementById( 'yourpartner')值]。 仍然有問題2.我有一組6人,另一個是4 ,但我會在理解你做了什麼,我會嘗試修復它。謝謝! –

+0

爲此,您可以將4個數組分成2個,然後將最後一個數組成員分配給每個團隊,只是一個建議。順便說一句,如果你發現我的答案有幫助,你可以接受它或可以upvote它。 –

+0

希望我可以upvote它,但它似乎因爲我新我有限制。只有當我達到15聲望我可以upvote:S –

相關問題