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 相关文章推荐
javascript 混合的构造函数和原型方式,动态原型方式
Dec 07 Javascript
28个常用JavaScript方法集锦
Jan 14 Javascript
jquery插件pagination实现无刷新ajax分页
Sep 30 Javascript
Ionic快速安装教程
Jun 03 Javascript
Javascript6中字符串的四个新用法分享
Sep 11 Javascript
jQuery的事件预绑定
Dec 05 Javascript
微信小程序三级联动选择器使用方法
May 19 Javascript
js中apply()和call()的区别与用法实例分析
Aug 14 Javascript
vue路由--网站导航功能详解
Mar 29 Javascript
10个最受欢迎的 JavaScript框架(推荐)
Apr 24 Javascript
基于axios 的responseType类型的设置方法
Oct 29 Javascript
Vue实现星级评价效果实例详解
Dec 30 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+mysqli数据库连接的两种方式
2015/01/28 PHP
Yii框架弹出框功能示例
2017/01/07 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
你所要知道JS(DHTML)中的一些技巧
2007/01/09 Javascript
javascript检查日期格式的函数[比较全]
2008/10/17 Javascript
js变换显示图片的实例
2013/04/16 Javascript
使用js 设置url参数
2013/07/08 Javascript
js中split和replace的用法实例
2015/02/28 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
JS模拟键盘打字效果的方法
2015/08/05 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
[05:40]DOTA2荣耀之路6:Wings最后进攻
2018/05/30 DOTA
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
玩转python爬虫之正则表达式
2016/02/17 Python
Python断言assert的用法代码解析
2018/02/03 Python
Django实现单用户登录的方法示例
2019/03/28 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
Python request中文乱码问题解决方案
2020/09/17 Python
15个Pythonic的代码示例(值得收藏)
2020/10/29 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
英国太阳镜品牌:Taylor Morris Eyewear
2018/04/18 全球购物
城市轨道专业个人求职信范文
2013/09/23 职场文书
初三物理教学反思
2014/01/21 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
推普周活动总结
2014/08/28 职场文书
个人工作能力自我评价
2015/03/05 职场文书
检察院起诉意见书
2015/05/20 职场文书
新郎父母婚礼致辞
2015/07/27 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
python tkinter模块的简单使用
2021/04/07 Python
防止web项目中的SQL注入
2021/12/06 MySQL