Javascript for Prompt输入和输出按字母顺序排序

时间:2013-12-01 03:37:13

标签: javascript html javascript-events

我正在尝试为用户创建一个输入数据的提示框,但输出应按字母顺序显示单词。

  

输入:一行文字,使用提示。
输出:单词   输入文本,按字母顺序排列。

我尝试过以下但似乎并不适合我:

var textArr = prompt("Enter a line of text: ");
var textArr=string.split();
textArr.sort();

alert(textArr.toString(', '));

5 个答案:

答案 0 :(得分:3)

我建议:

// 1. gets the text from the user,
// 2. splits that string, on white-space(s), into an array of words
// 3. sorts that array lexicographically (the default),
// 4. joins the array back together with the ', ' string
var textArr = prompt("Enter a line of text: ").split(/\s+/).sort().join(', ');

alert(textArr);

JS Fiddle demo

参考文献:

答案 1 :(得分:1)

您必须在以下位置提供要执行拆分的角色:

var input = prompt("Enter a line of text: ");
var textArr = input.split(' ');
console.log(textArr.sort());

答案 2 :(得分:0)

你没有说明什么是单词以及它们是如何分开的,所以我认为这是一些练习任务:

var textArr = prompt("Enter a line of text: ");
alert(textArr.match(/\w+/gi).sort().join());

match(/\w+/gi)匹配正则表达式/\w+/,这意味着任何拉丁字母字符后跟或数字后面跟着拉丁字母字符或数字。

显然,它不适用于用西里尔文或希腊语写的字,因为这会使问题复杂化。

答案 3 :(得分:0)

这里有几个问题:

  1. 字符串永远不会定义
  2. 拆分分隔符不应为空(“”代替)
  3. Array.toString()未正确转换
  4. 试试这个:

    <script language="JavaScript" type="text/javascript">
        var string = prompt("Enter a line of text: ");
        var textArr=string.split(" ");
        textArr.sort();
        alert(textArr.join(', '));
    </script>
    

答案 4 :(得分:0)

您必须为split函数指定一个分隔符,否则,它将返回一个只包含一个项目的数组(整个字符串)。

另外,如果要将数组转换为字符串,则应使用连接( glue )函数,其中 glue 是数组的'连接符'项目。如果省略 glue ,则元素将用逗号分隔。

试试这个:

var textArr = prompt("Enter a line of text: ");
var textArr = textArr.split(' '); //Separates words by spaces
textArr.sort();


alert(textArr.join(', '));