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 相关文章推荐
jQuery中mouseover事件用法实例
Dec 26 Javascript
js判断某个方法是否存在实例代码
Jan 10 Javascript
javascript如何写热点图
Dec 08 Javascript
理解JavaScript事件对象
Jan 25 Javascript
深入学习AngularJS中数据的双向绑定机制
Mar 04 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
May 17 Javascript
微信小程序 中wx.chooseAddress(OBJECT)实例详解
Mar 31 Javascript
原生JS实现隐藏显示图片 JS实现点击切换图片效果
Jan 27 Javascript
详解Vue双向数据绑定原理解析
Sep 11 Javascript
使用watch监听路由变化和watch监听对象的实例
Feb 24 Javascript
Vue中使用webpack别名的方法实例详解
Jun 19 Javascript
通过jQuery学习js类型判断的技巧
May 27 jQuery
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
使用 eAccelerator加速PHP代码的方法
2007/09/30 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
PHP以mysqli方式连接类完整代码实例
2014/07/15 PHP
Symfony2实现在controller中获取url的方法
2016/03/18 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
一个可以显示阴历的JS代码
2007/03/05 Javascript
textarea的value是html文件源代码,存成html文件的代码
2007/04/20 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
WEB前端实现裁剪上传图片功能
2016/10/17 Javascript
详解JavaScript树结构
2017/01/09 Javascript
vue 权限认证token的实现方法
2018/07/17 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
Python程序员开发中常犯的10个错误
2014/07/07 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
python Timer 类使用介绍
2020/12/28 Python
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
会计找工作求职信范文
2013/12/09 职场文书
高中毕业自我评价
2014/02/08 职场文书
毕业生自荐信格式
2014/03/07 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
党支部书记岗位职责
2015/02/15 职场文书
国庆节主题班会
2015/08/15 职场文书
深入理解CSS 中 transform matrix矩阵变换问题
2021/08/30 HTML / CSS
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python
Elasticsearch 批量操作
2022/04/19 Python
HTML实现仿Windows桌面主题特效的实现
2022/06/28 HTML / CSS