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所必须要知道的一些
Mar 07 Javascript
分析 JavaScript 中令人困惑的变量赋值
Aug 13 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
May 18 Javascript
深入浅析JavaScript中的作用域和上下文
Mar 26 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
May 11 Javascript
JS实现的打字机效果完整实例
Jun 20 Javascript
ES5 ES6中Array对象去除重复项的方法总结
Apr 27 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
Sep 25 Javascript
详解如何使用babel进行es6文件的编译
May 29 Javascript
layui监听select变化,以及设置radio选中的方法
Sep 24 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
Dec 16 Javascript
微信小程序实现同时上传多张图片
Feb 03 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正则表达式使用的详细介绍
2013/04/27 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
PHP如何使用Memcached
2016/04/05 PHP
CL vs ForZe BO5 第三场 2.13
2021/03/10 DOTA
Javascript 篱式条件判断
2008/08/22 Javascript
简单实用的全选反选按钮例子
2013/10/18 Javascript
JS与C#编码解码
2013/12/03 Javascript
js style动态设置table高度
2014/10/21 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
jQuery插件制作之全局函数用法实例
2015/06/01 Javascript
JS实现输入框提示文字点击时消失效果
2016/07/19 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
vue-next/runtime-core 源码阅读指南详解
2019/10/25 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
[01:10:48]完美世界DOTA2联赛PWL S2 GXR vs PXG 第一场 11.18
2020/11/18 DOTA
haskell实现多线程服务器实例代码
2013/11/26 Python
Python bsddb模块操作Berkeley DB数据库介绍
2015/04/08 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
python logging 日志的级别调整方式
2020/02/21 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
泰坦健身器材:Titan Fitness
2018/02/13 全球购物
中东奢侈品市场:Coveti
2019/05/12 全球购物
杠杆的科学教学反思
2014/01/10 职场文书
家长给小学生的评语
2014/01/30 职场文书
领导干部考察材料
2014/02/08 职场文书
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
小学班主任自我评价
2015/03/11 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
高一地理教学工作总结
2015/08/12 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书