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与jquery的多组处理, 仅展开一个区块的折叠效果
Jan 09 Javascript
在Firefox下js select标签点击无法弹出
Mar 06 Javascript
深入学习JavaScript中的Rest参数和参数默认值
Jul 28 Javascript
Immutable 在 JavaScript 中的应用
May 02 Javascript
简单实现js鼠标跟随效果
Aug 02 Javascript
vue2.0 循环遍历加载不同图片的方法
Mar 06 Javascript
JavaScript错误处理操作实例详解
Jan 04 Javascript
详解vue中使用微信jssdk
Apr 19 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
May 09 Javascript
vue data恢复初始化数据的实现方法
Oct 31 Javascript
vue 解决computed修改data数据的问题
Nov 06 Javascript
JavaScript实现简单贪吃蛇效果
Mar 09 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 mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
2012/03/01 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
JavaScript字符串对象的concat方法实例(用于连接两个或多个字符串)
2014/10/16 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
基于Jquery实现万圣节快乐特效
2015/11/01 Javascript
Angularjs的ng-repeat中去除重复数据的方法
2016/08/05 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
使用ES6语法重构React代码详解
2017/05/09 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
深入理解Puppeteer的入门教程和实践
2019/03/05 Javascript
Jquery 获取相同NAME 或者id删除行操作
2020/08/24 jQuery
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
pygame加载中文名mp3文件出现error
2017/03/31 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
夏威夷航空官网:Hawaiian Airlines
2016/09/11 全球购物
Shop Apotheke瑞士:您的健康与美容网上商店
2019/10/09 全球购物
大学生会计职业生涯规划范文
2014/02/28 职场文书
机械专业技术员求职信
2014/06/14 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
公积金具结保证书
2015/05/11 职场文书
工作表现证明
2015/06/15 职场文书
《用字母表示数》教学反思
2016/02/17 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书
2019行政前台转正申请书范文3篇
2019/08/15 职场文书
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
《Estab Life》4月6日播出 正式PV、主视觉图公开
2022/03/20 日漫