关于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 相关文章推荐
国外Lightbox v2.03.3 最新版 下载
Oct 17 Javascript
js获取GridView中行数据的两种方法 分享
Jul 13 Javascript
js中confirm实现执行操作前弹出确认框的方法
Nov 01 Javascript
DOM基础教程之事件类型
Jan 20 Javascript
jQuery实现简单的图片查看器
Sep 11 Javascript
jquery.validate使用详解
Jun 02 Javascript
jQuery simpleModal插件的使用介绍
Aug 30 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 Javascript
在页面中引入js的两种方法(推荐)
Aug 29 Javascript
使用vuex的state状态对象的5种方式
Apr 19 Javascript
javascript跳转与返回和刷新页面的实例代码
Nov 20 Javascript
javascript实现fetch请求返回的统一拦截
Dec 22 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学习之 循环结构实现代码
2011/06/09 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
走出JavaScript初学困境—js初学
2008/12/29 Javascript
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
jQuery中的read和JavaScript中的onload函数的区别
2014/08/27 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
JavaScript数组前面插入元素的方法
2015/04/06 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
jQuery中prepend()方法使用详解
2015/08/11 Javascript
使用JavaScript脚本判断页面是否在微信中被打开
2016/03/06 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
详解vue+vueRouter+webpack的简单实例
2017/06/17 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
JS实现的DOM插入节点操作示例
2018/04/04 Javascript
关于JavaScript中高阶函数的魅力详解
2018/09/07 Javascript
在NPM发布自己造的轮子的方法步骤
2019/03/09 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
Vue实现手机计算器
2020/08/17 Javascript
[04:40]DOTA2-DPC中国联赛1月26日Recap集锦
2021/03/11 DOTA
Linux下将Python的Django项目部署到Apache服务器
2015/12/24 Python
浅谈django url请求与数据库连接池的共享问题
2019/08/29 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
Python txt文件如何转换成字典
2020/11/03 Python
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
2012/04/17 面试题
学生自我鉴定
2013/12/18 职场文书
安卓程序员求职信
2014/02/28 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
自书遗嘱范文
2015/08/07 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python