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 相关文章推荐
js模拟淘宝网的多级选择菜单实现方法
Aug 18 Javascript
学习JavaScript正则表达式
Nov 13 Javascript
JS实现根据文件字节数返回文件大小的方法
Aug 02 Javascript
详解基于javascript实现的苹果系统底部菜单
Dec 02 Javascript
vue基于mint-ui的城市选择3级联动的示例
Oct 25 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
Aug 10 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
Dec 09 Javascript
Koa 中的错误处理解析
Apr 09 Javascript
js module大战
Apr 19 Javascript
Vue项目服务器部署之子目录部署方法
May 12 Javascript
js验证密码强度解析
Mar 18 Javascript
动态实现element ui的el-table某列数据不同样式的示例
Jan 22 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
星际争霸兵种名称对照表
2020/03/04 星际争霸
改进的IP计数器
2006/10/09 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
PHP实现的日历功能示例
2018/09/01 PHP
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
jQuery在vs2008及js文件中的无智能提示的解决方法
2010/12/30 Javascript
javascript中直接写php代码的方法
2013/07/31 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
JQuery实现当鼠标停留在某区域3秒后自动执行
2014/09/09 Javascript
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
用JS生成UUID的方法实例
2016/03/30 Javascript
jQuery Easy UI中根据第一个下拉框选中的值设置第二个下拉框是否可以编辑
2016/11/29 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
Vue响应式添加、修改数组和对象的值
2017/03/20 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
Python实现扩展内置类型的方法分析
2017/10/16 Python
python爬虫之线程池和进程池功能与用法详解
2018/08/02 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
pycharm激活码快速激活及使用步骤
2020/03/12 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
拉夫劳伦爱尔兰官方网站:Ralph Lauren爱尔兰
2020/04/10 全球购物
海量信息软件测试笔试题
2015/08/08 面试题
应届大学毕业生找工作的求职信范文
2013/11/29 职场文书
教师开学感言
2014/02/14 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书
导游词之苏州寒山寺
2019/12/05 职场文书
利用python进行数据加载
2021/06/20 Python