2014-02-13 105 views
0

我試圖從同一個數組中生成兩個隨機單詞。現在這個腳本會選擇一個單詞,但是當我嘗試選擇兩個單詞時,我遇到了一個問題。這是問題。用戶可以選擇從複選框中選擇多種語言,所以當我將兩個單詞放在兩個單詞中時,這兩個單詞用不同的語言(它們來自不同的列表)。我想確保所選的兩個詞來自同一個列表。我該怎麼做呢?從同一個數組中獲取兩個隨機單詞

function word(){ 
var choice = []; 
choice[0] = list0[Math.floor(Math.random()*list0.length)]; 
choice[1] = list1[Math.floor(Math.random()*list1.length)]; 
choice[2] = list2[Math.floor(Math.random()*list2.length)]; 
choice[3] = list3[Math.floor(Math.random()*list3.length)]; 

var final_words = []; 
var checkbox = document.getElementsByClassName('c'); 
for (var i = 0; i < checkbox.length; i++) { 
    if (checkbox[i].checked) { 
     final_words.push(choice[i]); 
    } 
} 
var finalword = final_words[Math.floor(Math.random()*final_words.length)]; 
} 
+0

它真的很難給出一個答案的時候,我們沒有一個示例列表。設置一個演示,所以我們不必猜測jsfiddle或者什麼 – megawac

+0

http://jsfiddle.net/qbFq3/ – adigioia

回答

1

這是你的意思嗎?

list0 = ['compare', 'power', 'random', 'raw', 'nothing', 'practice']; 
list1 = ['Comparar', 'energía', 'azar', 'crudo', 'nada', 'práctica']; 
list2 = ['comparer', 'puissance', 'aléatoire', 'saveur', 'brute']; 
list3 = ['比 ', '較 ', '隨 ', '機 ', '的 ', '電 ', '源 ', '沒 ', '有 ', '生 ', '實 ', '踐 ']; 

// used to match the lists with the id's of the checkboxes (lanugages) 
available_words = { 
    c1: list0, 
    c2: list1, 
    c3: list2, 
    c4: list3 
}; 

function pickRandom(arr) { 
    return arr[Math.floor(Math.random() * arr.length)]; 
} 

function getCheckedCheckboxes() { 
    var checkboxes = document.getElementsByClassName('c'); 
    var checked_checkboxes = []; 
    for (var i = 0; i < checkboxes.length; i++) { 
     if (checkboxes[i].checked) { 
      checked_checkboxes.push(checkboxes[i]); 
     } 
    } 
    return checked_checkboxes; 
} 

function getRandomWords(lang_id, no_words) { 
    words = []; 
    for (var i = 0; i < no_words; i++) { 
     do { 
      rand_word = pickRandom(available_words[lang_id]); 
     } while (words.indexOf(rand_word) >= 0); 
     words.push(rand_word); 
    } 
    return words; 
} 

function word() { 
    var words = []; 
    var checked_checkboxes = getCheckedCheckboxes(); 
    if (checked_checkboxes.length != 0) { 
     var rand_checkbox = pickRandom(checked_checkboxes); 
     words = getRandomWords(rand_checkbox.id, 2); 
    } 
    document.getElementById('q').innerHTML = words.join(' '); 
} 

http://jsfiddle.net/pMMB2/4/

+0

由於書面選擇[i]不存在。將行final_words.push(選擇[i])更改爲final_words.push(random_list [i])並刪除var choice = []; – jing3142

+0

我不能得到這個工作 – adigioia

+1

對不起,這是寫在火車上的一個急。現在應該做的伎倆。 –

相關問題