<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'任何人都可以帮我怎么做
答案 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;});