zoukankan      html  css  js  c++  java
  • sort()函数到底是怎样进行数字排序的

    很多人会用sort(),并不见得知道它具体是怎样给数字排序的。其实不知道也行,会用就可以,感兴趣的可以来看看。

    1  var numberArray = [2,4,1,3];
    2  numberArray.sort(function(a,b){  
    3     return a-b; //从小到大
    4  })

    用过sort()函数的都知道上面代码其实就是将数组里的元素从小到大排序,返回结果[1,2,3,4]。

    为了弄清楚sort()是怎样进行数字比较和移动,最后排好序的,我加三行代码,让它把每一次比较的结果,以及a和b的值都显示在控制台上。

     1 var numberArray = [2,4,1,3];
     2 
     3 res=numberArray.sort(function(a,b){  
     4    console.log(numberArray);
     5    console.log(a); 
     6    console.log(b);
     7    return a-b; 
     8    
     9 })
    10 console.log(res);

    控制台显示内容:

    红色字体是我标记的,以便理解。

    咱们看一下,一开始数组是[2,4,1,3],从小到大排序是从左边开始两两比较,首先2和4比较,2<4,俩数字位置不变;继续向右走,4和1比较,4>1,将4放在原来1的位置上;那么一开始比4小的2与1的大小关系呢,这会儿再进行比较,2>1,那就1在前,2在后;以此类推。

    如果是sort()函数从大到小排序,则是从左向右两两进行比较,大的放在左边。下面来看一下代码和控制台显示:

     1 var numberArray = [2,4,1,3];
     2 
     3 res=numberArray.sort(function(a,b){  
     4    console.log(numberArray);
     5    console.log(a); 
     6    console.log(b);
     7    return b-a; //从大到小
     8    
     9 })
    10 console.log(res);

    sort()函数除了可以给数字排序外,还可用于字母、字符串排序,其实质是按照字符编码的顺序进行排序。用法可参见http://www.jb51.net/article/67458.htm

    以上就是sort()函数的具体比较方法,如有表述不正确之处,望大家赐教,谢谢!

  • 相关阅读:
    点击图片等比缩放
    C# 使用 NPOI 库读写 Excel 文件
    vue url生产二维码
    centos Linux 同步Windows 时间
    centos 搭建 docker sentry
    centos 安装 pip
    webpack 提升90%的构建速度 HardSourceWebpackPlugin
    webpack 原生分析
    webpack 分析
    nodejs——js 实现webSocket 兼容移动端
  • 原文地址:https://www.cnblogs.com/realcare/p/6032721.html
Copyright © 2011-2022 走看看