當我的網格被創建時,它應該有6個獨特的單詞,但目前它會生成6個單詞,有時會重複。當填充網格時確保單詞不重複
我需要有人來幫我寫一個函數來解決這個問題。
在這裏,我有小提琴... http://jsfiddle.net/qBzPx/
這裏是聲音和圖像的話連接的列表...
<ul style="display:none;" id="wordlist">
<li data-word="mum" data-audio="http://www.wav-sounds.com/cartoon/daffyduck1.wav" data-pic="http://www.clker.com/cliparts/5/e/7/f/1195445022768793934Gerald_G_Lady_Face_Cartoon_1.svg.med.png"></li>
<li data-word="cat" data-audio="http://www.wav-sounds.com/cartoon/porkypig1.wav" data-pic="http://www.clker.com/cliparts/c/9/9/5/119543969236915703Gerald_G_Cartoon_Cat_Face.svg.med.png"></li>
<li data-word="dog" data-audio="http://www.wav-sounds.com/cartoon/porkypig1.wav" data-pic="http://www.clker.com/cliparts/e/9/4/1/1195440435939167766Gerald_G_Dog_Face_Cartoon_-_World_Label_1.svg.med.png"></li>
<li data-word="bug" data-audio="http://www.wav-sounds.com/cartoon/porkypig1.wav" data-pic="http://www.clker.com/cliparts/4/b/4/2/1216180545881311858laurent_scarabe.svg.med.png"></li>
<li data-word="rat" data-audio="http://www.wav-sounds.com/cartoon/daffyduck1.wav" data-pic="http://www.clker.com/cliparts/C/j/X/e/k/D/mouse-md.png"></li>
<li data-word="dad" data-audio="http://www.wav-sounds.com/cartoon/daffyduck1.wav" data-pic="http://www.clker.com/cliparts/H/I/n/C/p/Z/bald-man-face-with-a-mustache-md.png"></li>
最後這裏是腳本... 。
var listOfWords = [];
var ul = document.getElementById("wordlist");
var i;
for(i = 0; i < ul.children.length; ++i){
listOfWords.push({
"name" : ul.children[i].getAttribute("data-word"),
"pic" : ul.children[i].getAttribute("data-pic"),
"audio" : ul.children[i].getAttribute("data-audio")
});
}
console.log(listOfWords);
var chosenWords = [];
for(var x = 0; x < 6; x++)
{
var rand = Math.floor(Math.random() * (listOfWords.length));
console.log('name ' + listOfWords[rand].name);
chosenWords.push(listOfWords[rand].name);
if (chosenWords.length < 12){
chosenWords.push(' ');
}
}
console.log(chosenWords);
var shuffledWords = [];
shuffledWords = chosenWords.sort(function() { return 0.5 - Math.random() });
var guesses = {};
console.log(shuffledWords);
var tbl = document.createElement('table');
tbl.className = 'tablestyle';
var wordsPerRow = 2;
for (var i = 0; i < shuffledWords.length - 1; i += wordsPerRow) {
var row = document.createElement('tr');
console.log(shuffledWords);
for (var j = i; j < i + wordsPerRow; ++j) {
var word = shuffledWords[j];
console.log(j);
console.log(word);
guesses[word] = [];
for (var k = 0; k < word.length; ++k) {
var cell = document.createElement('td');
$(cell).addClass('drop').attr('data-word', word);
cell.textContent = word[k];
row.appendChild(cell);
}
}
tbl.appendChild(row);
}
document.body.appendChild(tbl);
感謝@Kir不要假設你能告訴我爲什麼我的圖像和聲音ar'nt上來時,我按「下一步」按鈕? – sMilbz 2012-07-31 13:16:37
所以.. listOfWords [rndWord]未定義,因爲rndWord是一個單詞,但listOfWords中的鍵是數字。第二個 - 我的解決方案也是制動它)),因爲刪除了listOfWords中的項目。作爲一個變體,你可以複製'listOfWords',例如:'helper_array = listOfWords;',並用'helper_array'替換所有'listOfWords'到for(var x = 0; x <6; x ++){...} – Kir 2012-07-31 13:27:52
我是否將「var listOfWords = [];」與「helper_array = listOfWords;」或者我另外添加它? @Kir – sMilbz 2012-07-31 13:36:40