美文网首页JavaScript 基础与提高
JavaScript 坑与技巧:sort

JavaScript 坑与技巧:sort

作者: soojade | 来源:发表于2017-02-06 16:46 被阅读86次

    sort()

    直接使用sort对数组排序

    // 坑
    [11,20,1,3,5,30].sort(); // [1, 11, 20, 3, 30, 5]
    

    Arraysort()方法默认把所有元素先转换为 String 再排序,结果'10'排在了'2'的前面,因为字符'1'比字符'2'的ASCII码小。

    还好,sort()方法也是一个高阶函数,可以接收一个比较函数来实现自定义的排序。

    由小到大排序

    var arr=[11,20,1,3,5,30];
    arr.sort((x,y)=>{
        if(x<y) return -1;
        if(x>y) return 1;
        return 0;
    });
    

    由大到小排序

    var arr=[11,20,1,3,5,30];
    arr.sort((x,y)=>{
        if(x<y) return 1;
        if(x>y) return -1;
        return 0;
    });
    

    字符串忽略大小写排序

    var arr=['pear','apple','Banana','Orange']
    arr.sort((s1,s2)=>{
        x=s1.toUpperCase(); // 忽略大小写就是把字符串统一变成大写或小写
        y=s2.toUpperCase();
        if(x<y) return -1;
        if(x>y) return 1;
        return 0;
    });
    

    sort()方法会修改原数组,返回的结果也就是原数组。

    相关文章

      网友评论

        本文标题:JavaScript 坑与技巧:sort

        本文链接:https://www.haomeiwen.com/subject/ycduittx.html