关于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 判断指定字符串是否为有效数字
May 11 Javascript
jQuery.ajax 用户登录验证代码
Oct 29 Javascript
基于jQuery的投票系统显示结果插件
Aug 12 Javascript
js制作的鼠标悬浮时产生的下拉框效果
Oct 27 Javascript
Bootstrap布局组件应用实例讲解
Feb 17 Javascript
JavaScript  cookie 跨域访问之广告推广
Apr 20 Javascript
AngularJS基础 ng-paste 指令简单示例
Aug 02 Javascript
js实现自动轮换选项卡
Jan 13 Javascript
vue-cli实现多页面多路由的示例代码
Jan 30 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
Sep 25 Javascript
js实现盒子移动动画效果
Aug 09 Javascript
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
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实现递归循环每一个目录
2010/08/08 PHP
解析PHP中常见的mongodb查询操作
2013/06/20 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
利用php-cli和任务计划实现订单同步功能的方法
2017/05/03 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
js Event对象的5种坐标
2011/09/12 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
不使用ajax实现无刷新提交表单
2014/12/21 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
JavaScript编写带旋转+线条干扰的验证码脚本实例
2016/05/30 Javascript
jQuery获取剪贴板内容的方法
2016/06/16 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
jQuery实现选中行变色效果(实例讲解)
2017/07/06 jQuery
Underscore之Array_动力节点Java学院整理
2017/07/10 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
微信小程序自定义音乐进度条的实例代码
2018/08/28 Javascript
vue前后分离调起微信支付
2019/07/29 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
浅谈Python3实现两个矩形的交并比(IoU)
2020/01/18 Python
python opencv 图像边框(填充)添加及图像混合的实现方法(末尾实现类似幻灯片渐变的效果)
2020/03/09 Python
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
广州迈达威.net面试题目
2012/03/10 面试题
什么是属性访问器
2015/10/26 面试题
三年级音乐教学反思
2014/01/28 职场文书
书法大赛策划方案
2014/06/04 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
TV动画《神废柴☆偶像》公布先导PV
2022/03/20 日漫