sort()函数到底是怎样进行数字排序的

news/2024/7/19 9:17:20 标签: 爬虫

 

很多人会用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()函数的具体比较方法,如有表述不正确之处,望大家赐教,谢谢!

转载于:https://www.cnblogs.com/realcare/p/6032721.html


http://www.niftyadmin.cn/n/1560518.html

相关文章

三翼鸟“场景定制”是海尔智家的未来吗?

智能家居时代&#xff0c;谁会是你的放心之选&#xff1f; 这是一个消费者的问题&#xff0c;同时也是一个智能家居厂商关心的问题。虽然这个问题目前来看还显得有点早&#xff0c;但智能家居厂商们却早已开始布局。 01 为“变”而生的三翼鸟 “物联网时代终将到来&#xf…

python json模块详解_Python-数据解析-json模块

import json json 一种轻量级的数据交换格式。 一、JSON 的值数字&#xff08;整数或浮点数&#xff09; 字符串&#xff08;在双引号中&#xff09; 逻辑值&#xff08;true 或 false&#xff09; 数组&#xff08;在方括号中&#xff09; 对象&#xff08;在花括号中&#xf…

Python标准库内置函数——hasattr

hasattr(object, name)&#xff1b; # object 对象 name 特征名称 判断对象object是否包含名为name的特性&#xff08;hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的&#xff09; hex(x)&#xff1b; 将整数x转换为16进制字符串。如果要获取浮点数的16进制…

星巴克“第三空间”模式,是到该改变的时候了

全球知名连锁咖啡品牌星巴克在中国市场正在遭遇多种挑战。这些挑战既存在于外部&#xff0c;也存在于星巴克内部。 01 从星巴克无锡门店使用“过期食材”说起 12月13日&#xff0c;新京报发布了两位记者卧底无锡星巴克门店的报道。 在一支时长为8分零9秒的视频中&#xff0…

python爬取职位信息_Python爬取拉勾网所有的职位信息(一)

程序员找工作&#xff0c;去哪里&#xff1f;拉勾网首选。职位那么多&#xff0c;一个一个看多麻烦&#xff0c;那么你会python的话&#xff0c;此时就是你运用体内python力量的时候了。 这篇文章主要讲述使用python去爬取拉勾网所有的职位招聘信息&#xff0c;针对大多数不熟悉…

进击的iQOO Neo5S,春节档的“优等生”

今年3月&#xff0c;iQOO发布了“性能芯与游戏芯”双加持的iQOO Neo5&#xff0c;凭借在游戏体验方面近乎满分的表现&#xff0c;iQOO Neo5成为2021年中端智能手机市场的爆款机型&#xff0c;赢得了市场销量和用户口碑的双丰收。 12月20日&#xff0c;iQOO举行新品发布会&…

python 之re模块(正规表达式)简单扯一下犊子

#!/usr/bin/env python # -*- coding: utf-8 -*- #re模块 正规表达式import re#match函数和search函数re.match函数 re.match 尝试从字符串的起始位置匹配一个模式&#xff0c;如果不是起始位置匹配成功的话&#xff0c;match()就返回none。 函数语法&#xff1a; re.match(pat…

从S12系列看vivo的高端进阶

12月22日&#xff0c;vivo S12系列新品正式发布。作为新一代先锋影像旗舰&#xff0c;vivo S12系列影像、性能、设计全面升级&#xff0c;全面出色。 从自拍旗舰到全面出色的先锋影像旗舰&#xff0c;vivo S系列的格局进一步被打开。 01 vivo S系列的进化之路 vivo S系列的…