使用html& amp;在textarea中根据长度对单词进行排序JavaScript的

时间:2014-01-28 04:05:41

标签: javascript

<div  align="center">
    <textarea style="overflow:auto;resize:none" id="sorter3" name="sorter3" rows="4" cols="50" maxlength="100" wrap="hard"></textarea><br>
    <input type="button" value="words in Asc" onClick="SortWords()">                  
</div>       

这是我对应的javascript的html页面:

function SortWords(){
    var inputvalues=document.getElementById("sorter3").value.split("");   
    inputvalues.sort();       
    //alert(inputvalues)
    alert(inputvalues[0])
    document.getElementById("sorter3").value=inputvalues;       
}

它显示基于单词首字母的输出,但我需要基于长度的输出:
例如:当我在文本区域输入一些东西时:欢迎来到javascriptworld它是一个独立的语言,预期输出是:最小的单词是'a',最长的单词是'javascriptworld'任何人都可以帮我怎么做

2 个答案:

答案 0 :(得分:0)

我认为你只需要改变你的

split("");

split(" ");

这样它就会使用空格来划分字符串,而不是将它分成每个单独的字符。

对于排序,如果您将一个函数作为参数发送,它将使用该函数作为比较类型进行排序。也许是这样的(未经测试):

.sort(function (a, b) { return a.length - b.length; } );

其余的应该是相当直接的。

答案 1 :(得分:0)

您需要根据各个元素的字符串长度sort输入值数组(使用split(' ')而不是split(''))。

var inputvalues=document.getElementById("sorter3").value.split(" ");   
inputvalues.sort(function(x, y) {return x.length>y.length;});      

DEMO