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 相关文章推荐
Prototype使用指南之base.js
Jan 10 Javascript
根据地区不同显示时间的javascript代码
Aug 13 Javascript
jQuery实现 注册时选择阅读条款 左右移动
Apr 11 Javascript
javascript搜索框效果实现方法
May 14 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
Sep 08 Javascript
使用jQuery制作遮罩层弹出效果的极简实例分享
May 12 Javascript
JavaScript 数组- Array的方法总结(推荐)
Jul 21 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
Aug 23 Javascript
手机图片预览插件photoswipe.js使用总结
Aug 25 Javascript
JS轮播图中缓动函数的封装
Nov 25 Javascript
常用jQuery选择器汇总
Feb 02 Javascript
knockoutjs模板实现树形结构列表
Jul 31 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
PHP生成Flash动画的实现代码
2010/03/12 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
php+ajax简单实现全选删除的方法
2016/12/06 PHP
thinkphp关于简单的权限判定方法
2017/04/03 PHP
JavaScript的document对象和window对象详解
2010/12/30 Javascript
js bind 函数 使用闭包保存执行上下文
2011/12/26 Javascript
js鼠标点击图片切换效果代码分享
2015/08/26 Javascript
js方法数据验证的简单实例
2016/09/17 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
Bootstrap复选框和单选按钮美化插件(推荐)
2016/11/23 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
浅谈jQuery框架Ajax常用选项
2017/07/08 jQuery
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
python xml.etree.ElementTree遍历xml所有节点实例详解
2016/12/04 Python
让Python更加充分的使用Sqlite3
2017/12/11 Python
Django中Model的使用方法教程
2018/03/07 Python
python批量创建指定名称的文件夹
2019/03/21 Python
用python介绍4种常用的单链表翻转的方法小结
2020/02/24 Python
打印tensorflow恢复模型中所有变量与操作节点方式
2020/05/26 Python
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
锐步英国官网:Reebok英国
2019/11/29 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
军训的自我鉴定
2013/12/10 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
机关党员四风问题个人整改措施
2014/10/26 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
教你如何使用Python下载B站视频的详细教程
2021/04/29 Python