JavaScript数组的排序

JavaScript数组的排序

JavaScript中对数组的排序分为两种

  • 第一种,对字母的排序

    对字母进行排序可以直接调用数组中的sort方法进行排序,JavaScript会默认以字母表顺序来帮我们排序

    排序前

            var sort = ['B','A',"D","E","C"];
    

    排序后

    在这里插入图片描述

    从浏览器中输出的信息可以看出他已经帮我们按照字母表的顺序排序好了。

    但是这种方法只能适用于字母的排序,也就是说对于数字的排序是不适合的

    如下代码

    		var sort = [10,9,5,12,31,51,12];
            console.log("排序前:" + sort);
            sort.sort();
            console.log("排序后:" + sort);
    

    在这里插入图片描述

    在浏览器中我们可以清楚的看到,他的输出结果是这样的。没有按照我们的预想进行排序(从小到大,或者从大到小),这是因为sort会默认的按照字符串顺序进行排序,所以在对数字排序的时候会产生一些不可预料的错误。

    PS: sort() 排序底层是按照 ASCII 码大小 ,对字符进行排序的,他会取出字母的首字母进行比较然后排序的。

    当这种的方法显然不适合对数字进行排序。

  • 第二种,对数字进行排序

    上面说了。直接调用sort方法是无法对数值进行排序的,但是sort方法可以让我们自定义比较器,然后对数值进行比较

    比较函数

    比较函数的目的是定义我们自己的排序顺序

    比较函数应该返回一个负,零或正值,这取决于参数:

    function(a, b){return a-b}
    

    当 sort() 函数比较两个值时,会将值发送到比较函数,并根据所返回的值(负、零或正值)对这些值进行排序。小的排在前面,大的数排在后面

    返回值说明
    大于0大的排数在前面,小的数排在后面
    小于0小的排数在前面,大的数排在后面

    如下代码

    		var sort = [1,10,9,5];
            console.log("排序前:" + sort);
            sort.sort(function(a,b){return a - b});
            console.log("排序后:" + sort);
    

    在这里插入图片描述
    这时就可以正常的对数字进行排序了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值