JS中sort函数排序用法实例分析


Posted in Javascript onJune 16, 2016

本文实例讲述了JS中sort函数排序用法。分享给大家供大家参考,具体如下:

最近遇到了一个面试题目,关于排序的问题,为了完善自己的知识点,这里就写一下学习笔记

<html>
<head>
<TITLE>class_obj_js_class</TITLE>
<script language=javaScript>
//sort()方法默认是按照ASCII码大小排序,看下面两个例子
function sortDemo(){
 var a, l;      // 声明变量。
 a = new Array("X" ,"y" ,"d", "Z", "v","m","r");
 l = a.sort();     // 排序数组。
 alert(l);
 return(l);      // 返回排序的数组。
}
//sortDemo();
function sortDemo2(){
  var arr = [50,200,3000];
  arr.sort();
  alert(arr);
}
//显示的结果为200、3000、50,因为是根据首字母2,3,5判断的
//sortDemo2();
//将上面的数字按照数字大小写排序,if条件是对大小的判断,因此就算对大小的排序
function testFunction(){
  var numArr = new Array(9,23,124);
  numArr.sort(function compare(a,b){
    if(a>b){
      return 1;//按照升序排列,即a排在b的后面
    }
    else
      return -1;
  });
  alert(numArr);
}
//testFunction();
//如果sort(sortfunction)中的sortfunction在a>b返回的值为真则是按照降序排列,反之按照升序排列
function testFunction2(){
  var numArr = new Array(9,124,23);
  numArr.sort(function compare(a,b){
    alert("a : " + a);
    alert("b : " + b);
    if(a > b){
      alert("a > b,返回正数");
      return -1;//按照降序排列,即a排在b的前面
    }
    else{
      alert("a < b,返回负数");
      return 1;
    }
  });
  alert(numArr);
}
//testFunction2();
/*要使数组的元素按先奇数后偶数的顺序排列,则若需a、b交换,仅当满足a是偶数且b是奇数条件即可,再按从小到大排序,仅当满足a、b均是奇数或偶数且a>b时即可
从下面的例子可以看出,根据if的条件就是需要排序的要求,返回的值大于0就可以了,就是对一次条件的排序*/
function testAdvance(){
  var a = [1, 7, 3, 9, 5, 6, 2, 8, 4];
  function f(a, b) {
    if (0 == a % 2 && 1 == b % 2) {
      return 1;//即对偶数和奇数排序
    }
    if ((1 == a % 2 && 1 == b % 2 || 0 == a % 2 && 0 == b % 2) && a > b) {
      return 1;//对奇数和偶数排序
    }
    return -1;
  }
 alert(a.sort(f));
}
//testAdvance();
//我们要做的就是写出if里面的条件,这个条件就是返回a、b需要交换的条件
//譬如:对var a=["a","A","B","b"];进行不分大小写并从大到小排序,仅当a.toString().toLowerCase() < b.toString().toLowerCase()时,交换a、b,所以用此填充if条件即可。
function testAdvance1(){
  var a=["a","A","B","b"];
  a.sort(function test(a,b){
    if(a.toString().toLowerCase() < b.toString().toLowerCase()){
      return 1;
    }
    else
      return -1;
  });
  alert(a);
}
testAdvance1();
</script>
<body >
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Opacity.js
Jan 22 Javascript
通过Jquery遍历Json的两种数据结构的实现代码
Jan 19 Javascript
jquery调用wcf并展示出数据的方法
Jul 07 Javascript
JavaScript原型继承之基础机制分析
Aug 26 Javascript
jQuery实现自定义事件的方法
Apr 17 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
May 25 Javascript
AngularJS equal比较对象实例详解
Sep 14 Javascript
Javascript Function.prototype.bind详细分析
Dec 29 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
详解PHP中pathinfo()函数导致的安全问题
Jan 05 Javascript
js Proxy的原理详解
May 25 Javascript
elementui的el-popover修改样式不生效的解决
Jun 30 Javascript
JS原型对象的创建方法详解
Jun 16 #Javascript
JS使用单链表统计英语单词出现次数
Jun 16 #Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
Jun 16 #Javascript
javascript的replace方法结合正则使用实例总结
Jun 16 #Javascript
jQuery插件实现文件上传功能(支持拖拽)
Aug 27 #Javascript
jQuery插件实现图片轮播特效
Jun 16 #Javascript
javascript正则表达式之分组概念与用法实例
Jun 16 #Javascript
You might like
PHP获取当前页面完整URL的实现代码
2013/06/10 PHP
PHP实现的迷你漂流瓶
2015/07/29 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
2013/11/28 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
2014/06/12 Javascript
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
vue-cli项目优化方法- 缩短首屏加载时间
2018/04/01 Javascript
在Vue中使用axios请求拦截的实现方法
2018/10/25 Javascript
es6基础学习之解构赋值
2018/12/10 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
JavaScript DOM常用操作代码汇总
2020/07/03 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[01:14]2019完美世界城市挑战赛(秋季赛)全国总决赛精彩花絮
2020/01/08 DOTA
python的正则表达式re模块的常用方法
2013/03/09 Python
python用来获得图片exif信息的库实例分析
2015/03/16 Python
恢复百度云盘本地误删的文件脚本(简单方法)
2017/10/21 Python
pip matplotlib报错equired packages can not be built解决
2018/01/06 Python
Python入门学习指南分享
2018/04/11 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
2019/07/08 Python
linux中如何使用python3获取ip地址
2019/07/15 Python
django模型类中,null=True,blank=True用法说明
2020/07/09 Python
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
会计实习生自我鉴定
2013/12/12 职场文书
历史专业个人求职信分享
2013/12/20 职场文书
应届中专生自荐书范文
2014/02/13 职场文书
暂住证明怎么写
2015/06/19 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python
在vue中import()语法不能传入变量的问题及解决
2022/04/01 Vue.js
frg-100简单操作(设置)说明
2022/04/05 无线电
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers