我正在为一个类做一个项目,我必须有一个用户输入名称,然后让程序按字母顺序对名称进行排序。我提出的代码不是很优雅,但它可以让用户输入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 :(得分: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)
像这样:
...
var namesArray = [name1,name2,name3].sort();
document.getElementById("msg1").innerHTML= namesArray[0];
document.getElementById("msg2").innerHTML= namesArray[1];
document.getElementById("msg3").innerHTML= namesArray[2];