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 相关文章推荐
解决jquery的datepicker的本地化以及Today问题
May 23 Javascript
JS实现的左侧竖向滑动菜单效果代码
Oct 19 Javascript
javascript电商网站抢购倒计时效果实现
Nov 19 Javascript
真正好用的js验证上传文件大小的简单方法
Oct 27 Javascript
移动端日期插件Mobiscroll.js使用详解
Dec 19 Javascript
详解vue-cli + webpack 多页面实例应用
Apr 25 Javascript
JS手机端touch事件计算滑动距离的方法示例
Oct 26 Javascript
解决vue中post方式提交数据后台无法接收的问题
Aug 11 Javascript
vue实现动态显示与隐藏底部导航的方法分析
Feb 11 Javascript
微信小程序视图控件与bindtap之间的问题的解决
Apr 08 Javascript
jquery实现动态创建form并提交的方法示例
May 27 jQuery
layui 弹出删除确认界面的实例
Sep 06 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
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
php实现批量上传数据到数据库(.csv格式)的案例
2017/06/18 PHP
Nginx下ThinkPHP5的配置方法详解
2017/08/01 PHP
php精度计算的问题解析
2019/06/21 PHP
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
JS 实现导航栏悬停效果(续2)
2013/09/24 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
JS实现页面数据无限加载
2016/09/13 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
使用jQuery给Table动态增加行、清空table的方法
2018/09/05 jQuery
nodejs基础之多进程实例详解
2018/12/27 NodeJs
微信小程序实现的canvas合成图片功能示例
2019/05/03 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
详解实现vue的数据响应式原理
2021/01/20 Vue.js
Python模块的加载讲解
2019/01/15 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
python字典的常用方法总结
2019/07/31 Python
django 简单实现登录验证给你
2019/11/06 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
详解HTML5 Canvas绘制不规则图形时的非零环绕原则
2016/03/21 HTML / CSS
AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码
2020/08/19 HTML / CSS
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
《乡愁》教学反思
2014/02/18 职场文书
《一株紫丁香》教学反思
2014/02/19 职场文书
日语系毕业求职信
2014/07/27 职场文书
小学教师个人总结
2015/02/05 职场文书
经理岗位职责范本
2015/04/15 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
python实现过滤敏感词
2021/05/08 Python
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
MySQL创建表操作命令分享
2022/03/25 MySQL