Javascript sort()排序 简单心得

语法:arrayObject.sort(sortby);

           参数sortby可选,用来规定排序规则,类型为函数。

number 类型排序:

    var arr = [3,6,9,11,2,4,7,1,20];
    document.write(arr.sort() +"<br>");
//  这样对于 number类型 无效---  页面效果:  1,11,2,20,3,4,6,7,9

//  解决方法 一  匿名函数
    document.write(arr.sort(function(a,b){
//      倒序输出  正序改为 a-b
        return b-a;
    })+"");
//  页面效果:  20,11,9,7,6,4,3,2,1

//  解决方法二    比较函数调用
    document.write(arr.sort(compare)+"<br>");
    function compare (a,b){
//      倒序  正序 a-b
        return b-a;
    };
//  页面效果:  20,11,9,7,6,4,3,2,1

字符类型----英文排序

//  先展示无效方法
    var arrSimple2=new Array("cew","mew","awe","bwe","ma");
//  该排序对  字符 数组无效, 在js中 b-a 需要满足 两者为 number 类型 
    arrSimple2.sort(function(a,b){
        return b-a;
    });
//  页面效果:cew,mew,awe,bwe,ma

//  有效方法
    //升序排序 有效
    document.write(arrSimple2.sort() +"<br>");
    //升序排列后 调用 reverse() 倒置元素顺序
    document.write(arrSimple2.sort().reverse() +"<br>");
//  页面效果:awe,bwe,cew,ma,mew
//          mew,ma,cew,bwe,awe

字符类型----汉字排序

//  直接使用sort() 发现对于 汉字 无效  
    var arr2 = ["刘二","大云","赵六","张三","王五","李明","二云"];
    document.write(arr2.sort()+"<br>");
//  页面效果: 二云,刘二,大云,张三,李明,王五,赵六

//  改用类似 number 类型的比较方法 有效  内部使用 js  localeCompare()比较函数
    document.write(arr2.sort(function(a,b){
//  正序输出   逆序 b.localeCompare(a) 即可
        return a.localeCompare(b);
    })+"<br>");
//  页面效果: 大云,二云,李明,刘二,王五,张三,赵六

混合排序

//英文, 汉字 ,数字 的 混合排序示例如下,还没有完全理解
//从页面反馈来看,三个层次 内部排序 按照 字符串的 排序 规则来看 是 OK 的 
    var arr3=new Array("3","21212","1","逼格","11","啊玉","abc","大哥","阿门","ded","大山","ddd","cew","mew","awe","bwe","ma");
    document.write(arr3.sort(function(a,b){
        return a.localeCompare(b);
    })+"<br>");
//页面效果 :1,11,21212,3,阿门,啊玉,逼格,大哥,大山,abc,awe,bwe,cew,ddd,ded,ma,mew

转载于:https://my.oschina.net/xiaohuoer1995/blog/730459

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值