关于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 相关文章推荐
Javascript 文件夹选择框的两种解决方案
Jul 01 Javascript
JS实现商品倒计时实现代码
May 03 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
Sep 11 Javascript
使用jquery插件qrcode生成二维码
Oct 22 Javascript
关于json字符串与实体之间的严格验证代码
Nov 10 Javascript
关于javascript事件响应的基础语法总结(必看篇)
Dec 26 Javascript
Three.js基础部分学习
Jan 08 Javascript
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
JavaScript实现的简单加密解密操作示例
Jun 01 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
Oct 14 Javascript
JavaScript实现捕获鼠标坐标
Apr 12 Javascript
vue实现页面切换滑动效果
Jun 29 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
PHP实现适用于自定义的验证码类
2016/06/15 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
浅析JavaScript原型继承的陷阱
2013/12/03 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
完善的jquery处理机制
2016/02/21 Javascript
JS弹出窗口的运用与技巧大全
2016/11/01 Javascript
js的三种继承方式详解
2017/01/21 Javascript
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
angular4笔记系列之内置指令小结
2018/11/09 Javascript
详解如何在Angular优雅编写HTTP请求
2018/12/05 Javascript
Vue通过配置WebSocket并实现群聊功能
2019/12/31 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
python实现多线程的两种方式
2016/05/22 Python
python中numpy.zeros(np.zeros)的使用方法
2017/11/07 Python
详解Python的循环结构知识点
2019/05/20 Python
python cv2在验证码识别中应用实例解析
2019/12/25 Python
CSS3 滤镜 webkit-filter详细介绍及使用方法
2012/12/27 HTML / CSS
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
澳大利亚相机之家:Camera House
2017/11/30 全球购物
建筑工程技术应届生求职信
2013/11/17 职场文书
预备党员转正思想汇报
2014/01/12 职场文书
七一表彰活动方案
2014/01/18 职场文书
文化宣传方案
2014/03/13 职场文书
《赠汪伦》教学反思
2014/04/12 职场文书
最美孝心少年事迹材料
2014/08/15 职场文书
个人委托书范本汇总
2014/10/01 职场文书
2014年教育工作总结
2014/11/26 职场文书
在校证明模板
2015/06/17 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
python blinker 信号库
2022/05/04 Python