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 相关文章推荐
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
Jan 29 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
Jan 24 Javascript
父页面显示遮罩层弹出半透明状态的dialog
Mar 04 Javascript
chrome调试javascript详解
Oct 21 Javascript
网站申请不到支付宝接口、微信接口,免接口收款实现方式几种解决办法
Dec 14 Javascript
vuejs响应用户事件(如点击事件)
Mar 14 Javascript
js仿淘宝商品放大预览功能
Mar 15 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
May 22 Javascript
JS中的JSON对象的定义和取值实现代码
May 09 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
Apr 07 Javascript
javascript实现获取中文汉字拼音首字母
May 19 Javascript
解决await在forEach中不起作用的问题
Feb 25 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
MySQL连接数超过限制的解决方法
2011/07/17 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
JQuery中使用ajax传输超大数据的解决方法
2014/07/14 Javascript
Bootstrap项目实战之子栏目资讯内容
2016/04/25 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
JavaScript用二分法查找数据的实例代码
2017/06/17 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
一个Vue视频媒体多段裁剪组件的实现示例
2018/08/09 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
express 项目分层实践详解
2018/12/10 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
Python中多线程thread与threading的实现方法
2014/08/18 Python
python使用htmllib分析网页内容的方法
2015/05/08 Python
python3利用smtplib通过qq邮箱发送邮件方法示例
2017/12/03 Python
详解python持久化文件读写
2019/04/06 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
python3获取url文件大小示例代码
2019/09/18 Python
python实现3D地图可视化
2020/03/25 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
美国知名的隐形眼镜电商:Contacts America
2019/11/19 全球购物
Kiehl’s科颜氏西班牙官方网站:源自美国的植物护肤品牌
2020/02/22 全球购物
在数据文件自动增长时,自动增长是否会阻塞对文件的更新
2014/05/01 面试题
药学专业个人的自我评价
2013/12/31 职场文书
会计专业应届生自荐信
2014/02/07 职场文书
目标管理责任书
2014/04/15 职场文书
惊天动地观后感
2015/06/10 职场文书
《圆的周长》教学反思
2016/02/17 职场文书
2016年“节能宣传周”活动总结
2016/04/05 职场文书
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS