原生的方法貌似是按照第一个数字或者字母来排列的,例如2大于11,网上看到一个方法,function test(a,b) {
    retuen a - b;
}
arr.sort(test)貌似这样子的话,就是按照数字大小排列,自己去试了一下确实是这样,请教一下这个原理是什么,在此先谢过各位了

解决方案 »

  1.   

    而且
    function test(a,b) {
        return a - b;
    }
    var arr=[2,11];
    alert(arr.sort(test))//输出2,11!!!
      

  2.   


    额,return写错了,他是从小到大排列的阿喂,当然是2,11啦,
      

  3.   

    test函数返回的值如果大于0,则b的索引减1,再与它前面的值比,如果返回值仍大于0,则再减1,直接索引为0或者返回值为负数,如果返回值为负数,则索引不变.另外:函数名最好不要用test这种名称来命名
      

  4.   

    function test(a,b) {
      return a>b?-1:1;
    }
    var arr=[2,11];
    alert(arr.sort(test))//输出2,11!!!
      

  5.   


    return a-b  这里的进行了数据类型自动转换,转换成了数值