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

时间:2014-01-28 04:50:02

标签: javascript

 <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我怎么能这样做,任何人都可以提前帮助我。

2 个答案:

答案 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