关于javascript sort()排序你可能忽略的一点理解


Posted in Javascript onJuly 18, 2017

前言

在Javascript数组排序中有一个sort()方法,sort()方法可以说分为两种,一种是文字数组排序,一种是数字数组排序。下面这篇文章主要和大家分享了关于最近学习javascript sort()排序发现了一点理解,下面话不多说了,来一起看看详细的介绍吧。

sort()排序的原理

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

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。

要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

这样就可以解释为什么[0,1,5,10,8]的升序排列会是[0,1,10,5,8]了

关于javascript sort()排序你可能忽略的一点理解

sort()排序参数的使用

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

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

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

关于javascript sort()排序你可能忽略的一点理解

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js分解url参数(面向对象-极简主义法应用)
Aug 09 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
Nov 14 Javascript
jQuery无刷新切换主题皮肤实例讲解
Oct 21 Javascript
基于javascript编写简单日历
May 02 Javascript
ashx文件获取$.ajax()方法发送的数据
May 26 Javascript
微信小程序 教程之条件渲染
Oct 18 Javascript
原生JS实现圣旨卷轴展开效果
Mar 06 Javascript
原生JS实现九宫格抽奖效果
Apr 01 Javascript
微信小程序中input标签详解及简单实例
May 18 Javascript
vue 注册组件的使用详解
May 05 Javascript
Vue 中可以定义组件模版的几种方式
Aug 06 Javascript
小程序实现锚点滑动效果
Sep 23 Javascript
jQuery扇形定时器插件pietimer使用方法详解
Jul 18 #jQuery
ES6中的rest参数与扩展运算符详解
Jul 18 #Javascript
ES6学习之变量的两种命名方法示例
Jul 18 #Javascript
vue实现表格增删改查效果的实例代码
Jul 18 #Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
Jul 18 #Javascript
vue深入解析之render function code详解
Jul 18 #Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
Jul 18 #jQuery
You might like
40年前的这部特摄片恐龙特级克塞号80后的共同回忆
2020/03/08 日漫
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
js下拉菜单语言选项简单实现
2013/09/23 Javascript
node.js中watch机制详解
2014/11/17 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
js自定义回调函数
2015/12/13 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
[58:32]EG vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python实现Const详解
2015/01/27 Python
Python实现句子翻译功能
2017/11/14 Python
Anaconda下配置python+opencv+contribx的实例讲解
2018/08/06 Python
python+opencv实现阈值分割
2018/12/26 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
Python 去除字符串中指定字符串
2020/03/05 Python
13个Pandas实用技巧,助你提高开发效率
2020/08/19 Python
Ralph Lauren意大利官方网站:时尚界最负盛名的品牌之一
2018/10/18 全球购物
日本乐天官方海外转运服务:Rakuten Global Express
2018/11/30 全球购物
皇家阿尔伯特瓷器美国官网:Royal Albert美国
2020/02/16 全球购物
如何使用PHP session
2015/04/21 面试题
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
汇智创新科技发展有限公司
2015/12/06 面试题
大学生水文观测实习自我鉴定
2013/09/29 职场文书
新员工培训个人的自我评价
2013/10/09 职场文书
上班看电影检讨书
2014/02/12 职场文书
端午节活动总结
2014/08/26 职场文书
授权委托书
2015/01/28 职场文书
超强台风观后感
2015/06/09 职场文书
python b站视频下载的五种版本
2021/05/27 Python
Python+Tkinter打造签名设计工具
2022/04/01 Python
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js