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

自己定义的方法出了什么问题

<script type="text/javascript">
   function sortNum(a,b) {
       var aa = a.parseInt();
       var bb = b.parseInt();
       if(aa>bb){
           return -2;
       }
       else if(aa<bb){
           return 2;
       }else{
           return 0;
       }
   }
    var myarr = new Array("80","16","50","6","100","1");
    document.write(myarr+  "<br/>"  );
    document.write(myarr.sort(sortNum));

结果是第二行完全不显示。

还有一点就是,javascript是弱类型的语言,那么返回-1的这个-1是什么类型的呢?是字符还是数值,是int还是float。有点迷惑啊

提问者:技术爱好者 2016-01-17 15:39

个回答

  • freekv
    2016-01-17 19:22:56
    已采纳

    恩,有几点可以修改下

    1、第二句这样写:var aa = parseInt(a);

    2、第三句这样写 ; var bb =parseInt(b);

    3、末尾,少了</script>

    4、function方法呢,这样写就可以了

    一、想从大到小排列,这样写

    function sortNum(a,b)

    {

        return a - b;

    }

    二、想从小到大排列,这样写

    function sortNum(a,b)

    {

        return b -a;

    }


  • xiamion
    2016-01-17 20:45:57

    parseInt() 括号里边要有值 字符型

  • Dusdii
    2016-01-17 19:21:55

    parseInt(a,b)