关于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 相关文章推荐
常见JS效果之图片减速度滚动实现代码
Dec 08 Javascript
jquery动画1.加载指示器
Aug 24 Javascript
JS简单实现元素复制示例附图
Nov 19 Javascript
JavaScript将页面表格导出为Excel的具体实现
Dec 27 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
Jul 02 Javascript
JavaScript模拟重力状态下抛物运动的方法
Mar 03 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
Dec 04 Javascript
微信小程序 常用工具类详解及实例
Feb 15 Javascript
javascript编程开发中取色器及封装$函数用法示例
Aug 09 Javascript
实现Vue的markdown文档可以在线运行的方法示例
Dec 11 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
Jan 21 Javascript
React-vscode使用jsx语法的问题及解决方法
Jun 21 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计算两个日期时间差(返回年、月、日)
2014/06/19 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
2019/01/10 PHP
PHP7新功能总结
2019/04/14 PHP
关于__defineGetter__ 和__defineSetter__的说明
2007/05/12 Javascript
js 调整select 位置的函数
2008/02/21 Javascript
event.srcElement 用法笔记e.target
2009/12/18 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
了不起的node.js读书笔记之node.js中的特性
2014/12/22 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
新闻上下滚动jquery 超简洁(必看篇)
2017/01/21 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
vue.js中npm安装教程图解
2018/04/10 Javascript
vue element-ui el-date-picker限制选择时间为当天之前的代码
2019/11/07 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
开始着手第一个Django项目
2015/07/15 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
使用C++扩展Python的功能详解
2018/01/12 Python
Python管理Windows服务小脚本
2018/03/12 Python
Django 限制用户访问频率的中间件的实现
2018/08/23 Python
在Python dataframe中出生日期转化为年龄的实现方法
2018/10/20 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
DES加密解密算法之python实现版(图文并茂)
2018/12/06 Python
Python中按值来获取指定的键
2019/03/04 Python
python实现学生管理系统开发
2020/07/24 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
移动通信行业实习自我鉴定
2013/09/28 职场文书
万年牢教学反思
2014/02/15 职场文书
公司会议开幕词
2015/01/29 职场文书
财务会计求职信范文
2015/03/20 职场文书
2016天猫双十一广告语
2016/01/28 职场文书
MySQL Threads_running飙升与慢查询的相关问题解决
2021/05/08 MySQL
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
CentOS7安装MySQL8的超级详细教程(无坑!)
2022/06/10 Servers