各位运行这个代码
  var data=[];
       for(var i=0;i<10;i++){
        data[i]=Math.floor(Math.random()*100);
   }
      //数组方法join用法
  data.sort();
      var t=data.join("<div ><br/></div>");
       document.write(t);
//放到随便一个html网页里,你会发现并不是严格有序。

解决方案 »

  1.   

      data.sort(function(a,b){
    return a-b;
    });
    就是有序的了,sort() 默认排序 ,是转化为字符串再排序的。无论是什么类型都会转为字符串,再排序 。
    自己传入一个比较函数就好 ,里面的那种就可以用来做数字行排序
      

  2.   

    w3c手册也没说sort是排序数字用的哦
      

  3.   

    <script>
       var data=[];
           for(var i=0;i<10;i++){
            data[i]=Math.floor(Math.random()*100);
       }
       function compare(num1,num2){
    if(num1>num2){
    return 1;
    }
            if(num1=num2){
    return 0;
    }
    else{
    return -1;
    }
       }   console.log(data.sort(compare));
    </script>
    sort()排序方法默认是以字典的方式(字符编码的形式)排序的,如果想比较两个数字的大小,需要加一个比较函数!