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

Правя проект за клас, в който трябва да имам потребителски входни имена и след това програмата да сортира имената по азбучен ред. Кодът, който измислих, не е много елегантен, но работи добре, за да накара потребителя да въведе 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