关于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 相关文章推荐
checkbox全选所涉及到的知识点介绍
Dec 31 Javascript
js、jquery图片动画、动态切换示例代码
Jun 03 Javascript
bootstrap改变按钮加载状态
Dec 01 Javascript
理解AngularJs指令
Dec 10 Javascript
BootStrap智能表单实战系列(八)表单配置json详解
Jun 13 Javascript
BootStrap 超链接变按钮的实现方法
Sep 25 Javascript
谈谈第三方App接入微信登录 解读
Dec 27 Javascript
js实现多行文本框统计剩余字数功能
Mar 28 Javascript
详解vue组件基础
May 04 Javascript
JavaScript多种滤镜算法实现代码实例
Dec 10 Javascript
JavaScript写个贪吃蛇小游戏(超详细)
Mar 17 Javascript
vue监听dom大小改变案例
Jul 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数组的概述及分类与声明代码演示
2013/02/26 PHP
php实现比较全的数据库操作类
2015/06/18 PHP
php基于单例模式封装mysql类完整实例
2016/10/18 PHP
Laravel基础-关于引入公共文件的两种方式
2019/10/18 PHP
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
用循环或if语句从json中取数据示例
2014/08/18 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
python使用cookielib库示例分享
2014/03/03 Python
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
浅析Python编写函数装饰器
2016/03/18 Python
Flask框架web开发之零基础入门
2018/12/10 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
2019/06/18 Python
python3实现mysql导出excel的方法
2019/07/31 Python
通过实例简单了解Python中yield的作用
2019/12/11 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
HTML5自定义元素播放焦点图动画的实现
2019/09/25 HTML / CSS
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
运动会开幕式邀请函
2014/01/22 职场文书
2014基层党员干部学习全国两会心得体会
2014/03/17 职场文书
银行求职信
2014/05/31 职场文书
装饰公司活动策划方案
2014/08/23 职场文书
博士导师推荐信
2015/03/25 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
2019年最新版见习人员管理制度!
2019/07/08 职场文书
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
Java 定时任务技术趋势简介
2022/05/04 Java/Android