问答详情
源自:7-22 数组排序sort()

sort为什么会这样排序,100为什么在0.1和18之间,怎样运算的

不知道为什么会这样排序

提问者:青椒rose_0 2016-08-09 13:51

个回答

  • _Linl
    2016-10-20 17:05:26

    unicode编码  0.01   ===> \u0030\u002e\u0030\u0031    100 ===>\u0031\u0030\u0030  18===> \u0031\u0038 ,从第一位开始比较u0031比u0030大,所以在100和18后面,相同的时候比较第二位同理,18在100后面,好吧我承认我很无聊。

  • 慕粉3597558
    2016-09-11 16:53:17

     function sortNum(a,b) {

    return a-b;

       }

    var myarr = new Array("0.01","0.1","3","-1","100","50","18");

    document.write(myarr.sort()+"<br>");

    document.write(myarr.sort(sortNum))

    划线的部位是在你代码上添加的,这样就会正常按照你的意愿排列,不添加的话,个人理解是你没对这组数安排升降,也没调用函数,那它就自己随机排列啦,也不知道对不对哈,望大神们指导!

  • Levo
    2016-09-02 16:17:34

    如果不指定<方法函数>,则按unicode码顺序排列。

    这一节的讲解里面有,你也可以再详细看看哟

  • Paul_Z
    2016-08-09 22:55:26

    因为你没有指定<方法函数>,那么就会按unicode码顺序排列。

  • 光着脚丫的拾荒者
    2016-08-09 14:35:21

    代码贴出来