JavaScript 基础与提高

JavaScript 坑与技巧:sort

2017-02-06  本文已影响86人  soojade

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()方法会修改原数组,返回的结果也就是原数组。

上一篇下一篇

猜你喜欢

热点阅读