提示用户输入信息,然后对数据进行排序

时间:2013-03-21 17:50:08

标签: javascript user-input command-prompt sorting

对于一个类项目,我需要在Javascript中创建一个程序,要求用户输入3个名称,然后按字母顺序对名称进行排序并将其打印在屏幕上。

我已经想出如何为用户创建一个输入数据的提示框,然后我可以让程序打印用户输入到屏幕上的字符串。但是,我无法弄清楚如何让Javascript对字符串进行排序。我知道我需要使用一个数组,但是我不确定在哪里放置数组,或者如何让它知道用户输入的变量。

这是我到目前为止的代码:

<html>
<script> 

function disp_prompt() 
      {
      var names=prompt("Please enter three names","Names")
      document.getElementById("msg").innerHTML= names
      }

</script> 


<center><input type="button" onclick="disp_prompt()" value="Click Here"></center>
<br>

<h2><center><div id="msg"></div></center></h2>
</html>

1 个答案:

答案 0 :(得分:4)

整个事情看起来像

var namesToPrompt = 3,
    names         = [ ];

// as long as namesToPrompt is truthy, prompt for inputs
while( namesToPrompt-- ) {
    names.push( prompt('Please enter a name') );
}

// sort our array
names.sort( byName );

// and print it
document.getElementById( 'msg' ).textContent = names.join(',');

function byName( a, b ) {
    return a.localeCompare( b );
}

如果您想让用户一次输入所有名称,您可以像

一样
var inputNames = prompt( 'Please enter three names','Names' );

document.getElementById( 'msg' ).textContent = inputNames
                                                 .split( /,\s+/ )   // split by any amount of white-space characters in a row
                                                 .sort( byName )
                                                 .join( ',' );

function byName( a, b ) {
    return a.localeCompare( b );
}