2013-03-21 56 views
0

我正在做一個類的項目,我必須有一個用戶輸入名稱,然後讓程序按字母順序排列名稱。我提出的代碼不是很優雅,但它可以很好地讓用戶輸入3個不同的名稱,然後在屏幕上輸出名稱。但是,我無法弄清楚如何對名稱進行排序。我能夠在disp_prompt()函數中放入一個數組嗎?我試過這樣做,它似乎沒有工作,雖然我可能會把數組代碼放在錯誤的地方。在提示中使用數組函數

這是我到目前爲止已經編寫的代碼:

<body> 

<script> 

function disp_prompt() 
    { 
    var name1=prompt("Please enter three names:","Name 1") 
    var name2=prompt("Please enter three names:","Name 2") 
    var name3=prompt("Please enter three names:","Name 3") 
    document.getElementById("msg1").innerHTML= name1; 
    document.getElementById("msg2").innerHTML= name2; 
    document.getElementById("msg3").innerHTML= name3; 
    } 

</script> 

<center><input type="button" onclick="disp_prompt()" value="Click Here"></center> 
<br> 

<h2><center><div id="msg1"></div></center></h2> 
<h2><center><div id="msg2"></div></center></h2> 
<h2><center><div id="msg3"></div></center></h2> 

</body> 

回答

0

您應在用戶輸入存儲在數組中,並使用一個for循環:

var theArray = []; 

for (var i = 0; i < 3; i++) { 
    var plusOne = i + 1; 
    theArray[i] = prompt("Please enter threee names: ", "Name " + plusOne); 
    document.getElementById("msg" + plusOne).innerHTML = theArray[i]; 
} 

一旦你的名字是在陣列,這將是微不足道的對它們進行排序:

theArray.sort();

0

你可以用逗號分隔的輸入:

function dispComment() { 
    var names, input; 
    input = prompt("Please enter three names (comma separated):","Name1,Name2,Name3"); 
    names = input.split(','); 
    // Check names length if it is needed 
    names.sort(); 
    // In the end, you'll have a sorted names array, assign to the fields 
    document.getElementById("msg1").innerHTML= names[0]; 
    document.getElementById("msg2").innerHTML= names[1]; 
    document.getElementById("msg3").innerHTML= names[2]; 
} 
+0

非常感謝你,這真的幫助! – 2013-03-21 23:59:03

0
  1. 你必須創建一個數組。
  2. 然後填充它。
  3. 然後使用數組索引來填充html。

像這樣:

... 
var namesArray = [name1,name2,name3].sort(); 
document.getElementById("msg1").innerHTML= namesArray[0]; 
document.getElementById("msg2").innerHTML= namesArray[1]; 
document.getElementById("msg3").innerHTML= namesArray[2];