sort()方法

数组排序方法有:冒泡排序、快速排序和sort()排序。
冒泡排序在前面文章中已经讲到,点击此处进行查看。
快速排序在前面文章中已经讲到,点击此处进行查看。
sort()排序是一种简单粗暴的数组排序方式。

基本语法:
Array.sort(fun);
其中参数fun是可选参数。

在对一个数组使用sort()方法,且没有传递任何参数时,Array数组中的元素将按照首字母的ASCII字符的顺序进行升序排序。
示例代码:

<script type="text/javascript">
    var array_one = [17,24,45,31,50,46,63,96,3,7];
    var array_two = ['you','tom','Ask',5,'go','answer','Say'];
    console.log(array_one.sort());
    console.log(array_two.sort());
</script>

打印出的结果为:
这里写图片描述

ASCII字符顺序为【数字0-9】——【大写字母A-Z】——【小写字母a-z】。
针对于上面arry_one中最后的排序结果也是根据首字母进行的排序。

所以如果想使用sort()方法对纯数字数组进行由小到大,或由大到小的排序是需要通过上面的可选参数fun来控制的。
fun表示一个可以提供返回值的函数。它的返回值必须是以下三个值之一:
①负值:表示第一个参数比第二个参数小;
②零:表示两个参数相等;
③正值:表示第一个参数比第二个参数大。

将array_one由小到大排序,示例代码如下:

<script type="text/javascript">
    var array_one = [17,24,45,31,50,46,63,96,3,7];
    array_one.sort(function compare(a,b){
        return a-b;
    });
    for(var i = 0; i < array_one.length; i++){
        document.write(array_one[i] + ',');
    }
</script>

在页面中输出的信息为:
这里写图片描述

上面代码中的fun参数可以提取出来,代码为:

<script type="text/javascript">
    function compare(a,b){
        return a-b;
    }
    var array_one = [17,24,45,31,50,46,63,96,3,7];
    array_one.sort(compare);
    for(var i = 0; i < array_one.length; i++){
        document.write(array_one[i] + ',');
    }
</script>

其输出的结果与上面的输出结果完全一致。

如果想让数组从大到小排序,只需要将上面的【a-b】替换为【b-a】即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值