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实现双击鼠标自动滚动屏幕的示例代码
Dec 14 Javascript
jQuery 动态云标签插件
Nov 11 Javascript
JavaScript中的small()方法使用详解
Jun 08 Javascript
关于JavaScript的变量的数据类型的判断方法
Aug 14 Javascript
js实现延时加载Flash的方法
Nov 26 Javascript
浅析jquery unbind()方法移除元素绑定的事件
May 24 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
Nov 21 Javascript
react路由配置方式详解
Aug 07 Javascript
jQuery plugin animsition使用小结
Sep 14 jQuery
详解Vuex管理登录状态
Nov 13 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
Sep 21 Javascript
深入学习Vue nextTick的用法及原理
Oct 08 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
php插入mysql数据返回id的方法
2018/05/31 PHP
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
简单了解JavaScript操作XPath的一些基本方法
2016/06/03 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
2018/12/07 Javascript
JS事件绑定的常用方式实例总结
2019/03/02 Javascript
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
vue-devtools的安装和使用步骤详解
2019/10/17 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
Python使用sklearn实现的各种回归算法示例
2019/07/04 Python
捷克移动配件网上商店:ProMobily.cz
2019/03/15 全球购物
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
PHP如何自定义函数
2016/09/16 面试题
什么是测试驱动开发(TDD)
2012/02/15 面试题
招商专员岗位职责
2014/02/08 职场文书
小学生新年寄语
2014/04/03 职场文书
服务标兵事迹材料
2014/05/04 职场文书
2015年组织部工作总结
2015/04/03 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
新年晚会开场白
2015/05/29 职场文书
redis lua限流算法实现示例
2022/07/15 Redis