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 DOM 学习第二章 编辑文本
Feb 19 Javascript
基于jQuery的倒计时插件代码
May 07 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
Apr 17 Javascript
js保留两位小数使用toFixed实现
Jul 29 Javascript
js获取电脑分辨率的思路及操作
Nov 22 Javascript
node.js学习总结之调式代码的方法
Jun 25 Javascript
js获取iframe中的window对象的实现方法
May 20 Javascript
Bootstrap模块dropdown实现下拉框响应
May 22 Javascript
jQuery Ajax 全局调用封装实例代码详解
Jun 02 Javascript
全面理解JavaScript中的继承(必看)
Jun 16 Javascript
微信小程序实现手势图案锁屏功能
Jan 30 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
Feb 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
社区(php&amp;&amp;mysql)三
2006/10/09 PHP
php加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
JavaScript中Math对象使用说明
2008/01/16 Javascript
javascript小数计算出现近似值的解决办法
2010/02/06 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
读jQuery之十三 添加事件和删除事件的核心方法
2011/08/23 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
node.js中的path.dirname方法使用说明
2014/12/09 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
JS如何生成一个不重复的ID的函数
2016/12/25 Javascript
详解AngularJS跨页面传值(ui-router)
2017/08/23 Javascript
详解如何用babel转换es6的class语法
2018/04/03 Javascript
如何在 JavaScript 中更好地利用数组
2018/09/27 Javascript
浅谈vue项目打包优化策略
2018/09/29 Javascript
JS实现的简单tab切换功能完整示例
2019/06/20 Javascript
JS正则表达式常见函数与用法小结
2020/04/13 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
python 打印出所有的对象/模块的属性(实例代码)
2016/09/11 Python
python用Pygal如何生成漂亮的SVG图像详解
2017/02/10 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
Python内置函数 next的具体使用方法
2017/11/24 Python
python实现一行输入多个值和一行输出多个值的例子
2019/07/16 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
Reformation官网:美国女装品牌
2018/09/14 全球购物
运动会解说词200字
2014/02/06 职场文书
全国法制宣传日活动总结2014
2014/11/01 职场文书
订货会邀请函
2015/01/31 职场文书
2016教师六五普法学习心得体会
2016/01/21 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
浅析Python实现DFA算法
2021/06/26 Python