JavaScript数组排序方法详解

JavaScript数组排序方法

  • sort()方法
    • sort() 方法用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的
    • 参数:
      1. 用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的各个字符的Unicode位点进行排序。
      2. firstE 第一个用于比较的值
      3. secondE 第二个用于比较的值
    • 返回值:排序后的数组。请注意,数组已原地排序,并且不进行复制。
    var arr = [5, 1, 10, 15, 3];
        console.log("原数组:", arr);
        //对数组进行升序排列,但是犹豫sort()会将数字转换为字符串比较,存在10以上的数字并不能正确的排序
        arr.sort();
        console.log('不使用比较函数:' + arr); //结果:[1, 10, 15, 3, 5]
        //使用比较函数,可以的到正确的顺序
        function compare(v1, v2) {
            if (v1 < v2) {
                return -1;
            } else if (v1 > v2) {
                return 1;
            } else {
                return 0;
            }
        }
        arr.sort(compare);
        console.log('使用比较函数:' + arr); //结果:[1, 3, 5, 10, 15]
    
    • 也可以改变比较函数的返回值,得到逆序的结果:
     var arr = [5, 1, 10, 15, 3];
        console.log("原数组:", arr);
        //对数组进行升序排列,但是犹豫sort()会将数字转换为字符串比较,存在10以上的数字并不能正确的排序
        function compare(v1, v2) {
            if (v1 < v2) {
                return 1;
            } else if (v1 > v2) {
                return -1;
            } else {
                return 0;
            }
        }
        arr.sort(compare);
        console.log('使用比较函数:' + arr); //结果:15,10,5,3,1
    
  • reverse()方法
    • reverse() 方法将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。
    • 参数:无
    • 返回值:改变后的数组
    • 注:该方法并不会堆数组进行降序排序,只是反转数组,因此,在使用升序函数后,使用该方法进行反转即可.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值