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>
4

3 回答 3

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();

于 2013-03-21T23:25:19.380 回答
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];
}
于 2013-03-21T23:25:20.493 回答
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];
于 2013-03-21T23:26:32.727 回答