2013-03-21 3 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

Вы должны сохранить введенные пользователем данные в массив и использовать для контура:

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

Спасибо большое, это действительно помогло !!! –

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]; 
Смежные вопросы