关于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 radio 联动效果
Mar 04 Javascript
$.format,jquery.format 使用说明
Jul 13 Javascript
jQuery中dequeue()方法用法实例
Dec 29 Javascript
javascript基本语法
May 31 Javascript
js控件Kindeditor实现图片自动上传功能
Jul 20 Javascript
浅谈JQ中mouseover和mouseenter的区别
Sep 13 Javascript
Angular2表单自定义验证器的实现
Oct 19 Javascript
JavaScript实现自定义媒体播放器方法介绍
Jan 03 Javascript
微信小程序之前台循环数据绑定
Aug 18 Javascript
Vue组件开发技巧总结
Mar 04 Javascript
详解VUE项目中安装和使用vant组件
Apr 28 Javascript
JavaScript实现简单日历效果
Sep 11 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入门速成(2)
2006/10/09 PHP
解决laravel 出现ajax请求419(unknown status)的问题
2019/09/03 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
使用Apache的rewrite
2021/03/09 Servers
如何用js控制css中的float的代码
2007/08/16 Javascript
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
JavaScript学习历程和心得小结
2010/08/16 Javascript
自动设置iframe大小的jQuery代码
2013/09/11 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2013/10/24 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
BootStrap+Mybatis框架下实现表单提交数据重复验证
2017/03/23 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
JavaScript读写二进制数据的方法详解
2018/09/09 Javascript
vue实现移动端input上传视频、音频
2020/08/18 Javascript
用实例分析Python中method的参数传递过程
2015/04/02 Python
Python读写txt文本文件的操作方法全解析
2016/06/26 Python
浅谈python中set使用
2016/06/30 Python
Python实现将16进制字符串转化为ascii字符的方法分析
2017/07/21 Python
基于python元祖与字典与集合的粗浅认识
2017/08/23 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
pandas数据拼接的实现示例
2020/04/16 Python
Python如何操作docker redis过程解析
2020/08/10 Python
将一个数的从第5位开始的7个数取出,其余位置0
2016/05/26 面试题
银行开业庆典方案
2014/02/06 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
党校培训自我鉴定范文
2014/03/20 职场文书
商业融资计划书
2014/04/29 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
婚前协议书标准版
2014/10/19 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
导游词之山西关帝庙
2019/11/01 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android