美文网首页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

    sort() 直接使用sort对数组排序 Array的sort()方法默认把所有元素先转换为 String 再排序...

  • JavaScript 坑与技巧:this

    this 在方法内部的函数中使用this 由于this指针只在age方法的函数内指向xiaoming,在函数内部定...

  • JavaScript 坑与技巧:遍历

    假如要按如下方法遍历一个数组: 这样每次循环还要和len比较,时间复杂度是O(n+1)。可以使用如下方式: 上面的...

  • JavaScript 坑与技巧:reduce()

    判断字符串str="adfkjglsdkjfjsa"中每个字符出现的次数: 将数组a=[1,2,3,4,5]转换成...

  • JavaScript 坑与技巧:表单

    表单 巧用 input 加密提交 很多登录表单出于安全考虑,提交时不传输明文密码,而是密码的MD5。普通JavaS...

  • JavaScript 坑与技巧:异常

    异常 异步错误处理 用try包裹setTimeout()是无效的:原因就在于调用setTimeout()函数时,传...

  • JavaScript 坑与技巧:map

    map() 在 map 中使用 parseInt 的坑 由于map()接收的回调函数可以有3个参数:callbac...

  • JavaScript 坑与技巧:DOM

    DOM 当遍历一个父节点的子节点并进行删除操作时,要注意,children属性是一个只读属性,并且它在子节点变化时...

  • JavaScript 坑与技巧:filter

    filter() 巧用 filter 去除数组中相同元素 filter()接收的回调函数可以有多个参数。通常我们仅...

  • JavaScript 坑与技巧:闭包

    闭包 由于返回的函数引用了变量i,但它并非立刻执行。等到3个函数都返回时,它们所引用的变量i已经变成了4,因此最终...

网友评论

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

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