2016-11-27 67 views
0

我無法弄清楚如何從我的數組列表中獲取兩個項目,這些項目屬於一起以在我使用隨機功能的同時生成。當我點擊「獲取姓名和成績」按鈕時,我想在一個框中獲得一個隨機名,並在另一個框中獲得相應的成績。我只能設法得到不屬於同一名字的隨機姓名和成績。我該如何解決?Javascript,我如何從一個數組中獲取兩個相應的元素來隨機生成特徵?

<!DOCTYPE html> 
<html> 

<head> 
<meta charset="UTF-8"> 
<title>javascript</title> 

<script type="text/javascript"> 


    var names = []; 
    var grades = []; 

    names[0]="Klara"; 
    grades[0]="A"; 
    names[1]="Sarah"; 
    grades[1]="A"; 
    names[2]="Andrea"; 
    grades[2]="B"; 
    names[3]="Emil"; 
    grades[3]="C"; 
    names[4]="Victor"; 
    grades[4]="C"; 
    names[5]="Alicia"; 
    grades[5]="D"; 
    names[6]="Thomas"; 
    grades[6]="E"; 
    names[7]="Robert"; 
    grades[7]="E"; 



    function getName() 
    { 
     var rand = names[Math.floor(Math.random() * 8)]; 
     return rand; 
     var box =document.getElementById('getName');getName.value=getName; 

     } 

    function box(){ 
    var box =document.getElementById('getName');getName.value=getName; 
    } 



      function getGrade() 
    { 
     var rand = grades[Math.floor(Math.random() * 8)]; 
     return rand; 
     var box =document.getElementById('getGrade');getGrade.value=getGrade; 

     } 

    function box2(){ 
    var box2 =document.getElementById('getGrade');getGrade.value=getGrade; 
    } 






</script> 


</head> 
<body> 

<form> 

    <input type="text" name="box" id="box" value=""/> <br/> 
    <input type="text" name="box2" id="box2" value=""/> <br/> 
    <input type="button" name="textbox1" id="textbox1" value="get Name and Grade" onclick="document.getElementById('box').value = getName(),document.getElementById('box2').value = getGrade()"/> 
    </form>  






</body> 
</html> 
+0

這是因爲您使用隨機函數來獲取名稱,然後再次使用隨機函數來獲取分數。爲了得到與名字相對應的等級,只用一個隨機函數來獲得一個特定的'index',並得到與'index'相對應的名字和等級。 – NavkarJ

+0

問題解決了嗎?爲什麼該主題不被接受? – Lain

+0

是的問題解決了,謝謝你,我不知道爲什麼話題不被接受,即時通訊新的在這裏... – Northwood

回答

0

在你的例子中有很多語法錯誤和奇怪的調用,現在應該忽略它。

你可以存儲對象,而不是數據,所以數據總是存儲在一起:

var tName = [ 
    {Name: "Klara", Grade: "A"}, 
    {Name: "Sarah", Grade: "A"} 
]; 

然後,您可以訪問這些值是這樣的:

tName[0].Name; 
tName[0].Grade; 

編輯:

<html> 
    <head> 
     <script> 
      var mName = [ 
        {Name: "Klara", Grade: "A"}, 
        {Name: "Sarah", Grade: "A"}, 
        {Name: "Andrea", Grade: "B"}, 
        {Name: "Emil", Grade: "C"}, 
        {Name: "Victor", Grade: "C"}, 
        {Name: "Alicia", Grade: "D"}, 
        {Name: "Thomas", Grade: "E"}, 
        {Name: "Robert", Grade: "E"} 
      ]; 

      function getName(){ 
       return mName[Math.floor(Math.random() * mName.length)] 
      } 

      function setValues(){ 
       var tB1 = document.querySelector('#box'); 
       var tB2 = document.querySelector('#box2'); 
       var tName = getName(); 

       tB1 && (tB1.value = tName.Name); 
       tB2 && (tB2.value = tName.Grade) 
      } 
     </script> 
    </head> 

    <body> 
     <form> 
      <input type="text" name="box" id="box" value=""/> <br/> 
      <input type="text" name="box2" id="box2" value=""/> <br/> 
      <input type="button" name="textbox1" id="textbox1" value="get Name and Grade" onclick="setValues()"/> 
     </form> 
    </body> 
</html> 
0

好吧,現在我的代碼看起來像這樣。當我按下按鈕以獲得成績和名稱時,我會在每個文本框中獲得[對象對象],無法弄清楚如何解決它。

<!DOCTYPE html> 
<html> 

<head> 
<meta charset="UTF-8"> 
<title>javascript</title> 

<script type="text/javascript"> 


    var tName = [ 
     {Name: "Klara", Grade: "A"}, 
     {Name: "Sarah", Grade: "A"}, 
     {Name: "Andrea", Grade: "B"}, 
     {Name: "Emil", Grade: "C"}, 
     {Name: "Victor", Grade: "C"}, 
     {Name: "Alicia", Grade: "D"}, 
     {Name: "Thomas", Grade: "E"}, 
     {Name: "Robert", Grade: "E"} 
    ]; 

    tName[0].Name; 
    tName[0].Grade; 
    tName[1].Name; 
    tName[1].Grade; 
    tName[2].Name; 
    tName[2].Grade; 
    tName[3].Name; 
    tName[3].Grade; 
    tName[4].Name; 
    tName[4].Grade; 
    tName[5].Name; 
    tName[5].Grade; 
    tName[6].Name; 
    tName[6].Grade; 
    tName[7].Name; 
    tName[7].Grade; 


    function getName() 
    { 
     var rand = tName[Math.floor(Math.random() * tName.length)]; 
     return rand; 
     var box =document.getElementById('getName');getName.value=getName; 

     } 

    function box(){ 
    var box =document.getElementById('getName');getName.value=getName; 
    } 



    function box2(){ 
    var box2 =document.getElementById('getName');getName.value=getName; 
    } 






</script> 


</head> 
<body> 

<form> 

    <input type="text" name="box" id="box" value=""/> <br/> 
    <input type="text" name="box2" id="box2" value=""/> <br/> 
    <input type="button" name="textbox1" id="textbox1" value="get Name and Grade" onclick="document.getElementById('box').value = getName(),document.getElementById('box2').value = getName()"/> 
    </form>  






</body> 
</html> 
+0

一個男人必須分配的對象屬性,而不是對象本身。 getName()。Name或getName()。Grade。我的答案中有一個編輯。 – Lain

相關問題