【问题标题】:Using an array function inside a prompt [duplicate]在提示中使用数组函数[重复]
【发布时间】:2026-01-14 13:00:01
【问题描述】:

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

【问题讨论】:

    标签: javascript arrays prompt


    【解决方案1】:

    您应该将用户的输入存储在一个数组中并使用 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();

    【讨论】:

      【解决方案2】:

      您可以使用逗号分隔的输入:

      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];
      }
      

      【讨论】:

      • 非常感谢,这真的很有帮助!!!
      【解决方案3】:
      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];
      

      【讨论】: