在提示符中使用数组函数

时间:2013-03-21 23:16:32

标签: javascript arrays prompt

我正在为一个类做一个项目,我必须有一个用户输入名称,然后让程序按字母顺序对名称进行排序。我提出的代码不是很优雅,但它可以让用户输入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>

3 个答案:

答案 0 :(得分: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();

答案 1 :(得分: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];
}

答案 2 :(得分:0)

  1. 您必须创建一个数组。
  2. 然后填充它。
  3. 然后使用数组索引填充html。
  4. 像这样:

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