Использование функции массива внутри подсказки

Я делаю проект для класса, в котором мне нужно вводить имена пользователей, а затем программа сортирует имена по алфавиту. Код, который я придумал, не очень элегантный, но он отлично работает, чтобы заставить пользователя ввести 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>

person Annika Zwirn    schedule 21.03.2013    source источник


Ответы (3)


Вы должны сохранить ввод пользователя в массив и использовать цикл 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();

person jahroy    schedule 21.03.2013

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

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];
}
person Mikhail Chernykh    schedule 21.03.2013
comment
Спасибо большое, реально помогло!!! - person Annika Zwirn; 22.03.2013

  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];
person Joe    schedule 21.03.2013