<div align="right">
<textarea style="overflow:auto;resize:none" id="sorter2" name="sorter2" rows="4" cols="50" maxlength="100" wrap="hard"></textarea><br>
<input type="button" value="Numbers in Asc" onClick="SortNumbers()">
</div>
这是我的html页面,我正在编写javascript:
function SortNumbers(){
var arr=document.getElementById("sorter2").value.split(",");
arr.sort();
alert(arr)
document.getElementById("sorter2").value=arr; }
对于这个我正在排序的数字,例如:当输入9,8,7,143,2,96预期输出为最小数字是2而最长单词是143我怎么能这样做,任何人都可以提前帮助我。
答案 0 :(得分:0)
arr.sort(function(x,y){
return x.toString().length > y.toString().length || // sort by length
x > y; // and by its value
})
答案 1 :(得分:0)
试试这个
function SortNumbers() {
var arr = document.getElementById("sorter2").value.split(",");
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr.length; j++) {
if((+arr[i])<(+arr[j])){
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
alert(arr)
document.getElementById("sorter2").value = arr;
}
使用+ arr [i]代替parseInt(arr [i])
在这种情况下,您将对您的数字进行排序,结果将是 2,7,8,9,96,143