javascript sort()对数组中的元素进行排序详解


Posted in Javascript onOctober 13, 2019

javascript sort()可以对数组中的元素进行排序,

语法格式:arrayObject.sort(sortby)

arrayObject是数组对象,sortby为可选项,用来确定元素顺序的函数的名称,如果这个参数被省略,那么元素将按照ASCII字符顺序进行升序排列。

在没有使用比较函数进行排序时,sort方法是按字符的ASCII值进行排序的,先从第一个字符比较,如果第一个字符相等,再比较第二个字符,以此类推。

对于数值型数据,如果按照字符比较,得到的结果可能并不是我们想要的,因此需要借助比较函数。比较函数有两个参数,分别代表每次排序时的两个数组项。sort()排序时每次比较两个数组项都会执行这个参数,并把两个比较的数组项做为参数传递给这个函数。当函数返回值大于0时就交换两个数组的顺序,否则就不交换,即函数返回值小于0,表示升序排列,函数返回值大于0,表示降序排列。

<!DOCTYPE html>
<html>
<head>
  <title>对数组中的元素进行排序</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <script type="text/javascript">
    var x = new Array(1,20,8,12,6,7);  //创建数组
    document.write("排序前数组:"+x.join(",")+"<p>"); //输出数组元素
    x.sort();  //按字符升序排列数组
    document.write("没有使用比较函数排序后数组:"+x.join(",")+"<p>");   //输出排序后数组
    x.sort(asc);    //有比较函数的升序排列
    /*升序比较函数*/
    function asc(a,b){
      return a-b;
    }
    document.write("排序升序后数组:"+x.join(",")+"<p>");  //输出排序后的数组
    x.sort(des);  //有比较函数的降序排列
    /*降序比较函数*/
    function des(a,b){
      return b-a;
    }
    document.write("排序降序后数组:"+x.join(",")); //输出排序后数组
 </script>
</head>
<body>
</body>
</html>

以上实例代码大家可以测试下,感谢大家的学习和对三水点靠木的支持。

Javascript 相关文章推荐
for 循环性能比较 提高for循环的效率
Mar 19 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
Jan 15 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
May 03 Javascript
使用node.js 获取客户端信息代码分享
Nov 26 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
Feb 20 Javascript
jquery实现的树形目录实例
Jun 26 Javascript
Angularjs结合Bootstrap制作的一个TODO List
Aug 18 Javascript
Angular-Ui-Router+ocLazyLoad动态加载脚本示例
Mar 02 Javascript
JS实现直接运行html代码的方法
Mar 13 Javascript
bootstrap modal+gridview实现弹出框效果
Aug 15 Javascript
vue路由教程之静态路由
Sep 03 Javascript
原生js实现日期选择插件
May 21 Javascript
javaScript把其它类型转换为Number类型
Oct 13 #Javascript
js 实现watch监听数据变化的代码
Oct 13 #Javascript
15 分钟掌握vue-next响应式原理
Oct 13 #Javascript
Vue3.x源码调试的实现方法
Oct 13 #Javascript
使用webpack将ES6转化ES5的实现方法
Oct 13 #Javascript
vue中uni-app 实现小程序登录注册功能
Oct 12 #Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
Oct 12 #jQuery
You might like
咖啡知识大全
2021/03/03 新手入门
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
php中JSON的使用与转换
2015/01/14 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
Yii2前后台分离及migrate使用(七)
2016/05/04 PHP
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
JavaScript实现点击单元格改变背景色的方法
2016/02/12 Javascript
js调用屏幕宽度的简单方法
2016/11/14 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
jquery实现穿梭框功能
2021/01/19 jQuery
windows下安装python paramiko模块的代码
2013/02/10 Python
在Python中使用Neo4j数据库的教程
2015/04/16 Python
常见的python正则用法实例讲解
2016/06/21 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
python 以16进制打印输出的方法
2018/07/09 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
Python txt文件如何转换成字典
2020/11/03 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
银行实习的自我鉴定
2013/12/10 职场文书
校园之声广播稿
2014/01/31 职场文书
二年级语文教学反思
2014/02/02 职场文书
校园学雷锋活动月总结
2014/03/09 职场文书
高中教师个人总结
2015/02/10 职场文书
国庆放假通知怎么写
2015/07/30 职场文书
宪法宣传标语100条
2019/10/15 职场文书
Netty结合Protobuf进行编解码的方法
2021/06/26 Java/Android
Python基础 括号()[]{}的详解
2021/11/07 Python
redis lua限流算法实现示例
2022/07/15 Redis
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技