博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于javascript sort()排序的一点理解
阅读量:5810 次
发布时间:2019-06-18

本文共 468 字,大约阅读时间需要 1 分钟。

sort()排序的原理

最近在leetcode刷题的时候遇到一个排序问题之前一直都忽略了sort排序的原理,让我们看下w3c对于sort()的说明:

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。
这样就可以解释为什么[0,1,5,10,8]的升序排列会是[0,1,10,5,8]
clipboard.png

sort()排序参数的使用

w3c对于参数的使用还有如下一段说明:

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

  • 若 a 等于 b,则返回 0。

  • 若 a 大于 b,则返回一个大于 0 的值。

所以得出如果想要升序排列的话通过a-b就可以实现 sort((a,b)=>a-b),反序也可以通过这个来做到:

clipboard.png

转载地址:http://mmjbx.baihongyu.com/

你可能感兴趣的文章
415. Add Strings - Easy
查看>>
linux python 图形编程 qt开发环境搭建
查看>>
HDU 6113 度度熊的01世界
查看>>
C++四种类型转化
查看>>
学习掌握一个新东西
查看>>
多线程面试题系列(5):经典线程同步 关键段CS
查看>>
无法启动MYSQL服务”1067 进程意外终止”解决的方法
查看>>
tomcat 连接池拦截器
查看>>
bzoj1650[Usaco2006 Dec]River Hopscotch 跳石子*
查看>>
基于matlab信噪比程序
查看>>
Visual Studio进行负载测试,RIG和负载测试术语- Part II
查看>>
尝试用Gearman实现分布式处理(PHP)
查看>>
Error: "源代码不可用于此位置"
查看>>
Python知识点-字符串格式化几种方式
查看>>
市场营销魔力:欲望的安慰剂效应 - Levels of marketing magic, the placebo effects of desire...
查看>>
编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。...
查看>>
jdk设置
查看>>
Android之Gson解析JSON数据
查看>>
对Sqlserver的高级操作
查看>>
VS2003.NET在文件中查找卡死
查看>>