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 相关文章推荐
JavaScript 读取元素的CSS信息的代码
Feb 07 Javascript
初窥JQuery(二)事件机制(2)
Dec 06 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
Mar 14 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
js实现拖拽效果
Feb 12 Javascript
原生js实现模拟滚动条
Jun 15 Javascript
初识angular框架后的所思所想
Feb 19 Javascript
js剪切板应用clipboardData实例解析
May 29 Javascript
jQuery读取XML文件的方法示例
Feb 03 Javascript
Easyui和zTree两种方式分别实现树形下拉框
Aug 04 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
Sep 19 Javascript
JS事件绑定的常用方式实例总结
Mar 02 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的类 功能齐全的发送邮件类
2006/10/09 PHP
php 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
php调用C代码的实现方法
2014/03/11 PHP
基于PHP后台的Android新闻浏览客户端
2016/05/23 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
PHP 实现重载
2021/03/09 PHP
javascript 禁止复制网页
2009/06/11 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
javascript full screen 全屏显示页面元素的方法
2013/09/27 Javascript
js实现点击链接后延迟3秒再跳转的方法
2015/06/05 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
vue+axios实现登录拦截的实例代码
2017/05/22 Javascript
Angular2.js实现表单验证详解
2017/06/23 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
Django的数据模型访问多对多键值的方法
2015/07/21 Python
python字符串的方法与操作大全
2018/01/30 Python
pycharm重置设置,恢复默认设置的方法
2018/10/22 Python
python实现windows壁纸定期更换功能
2019/01/21 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
关键字final的用法
2013/10/02 面试题
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
教师的实习鉴定
2013/12/15 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
政风行风建设整改方案
2014/10/27 职场文书
学生检讨书如何写
2014/10/30 职场文书
教师节慰问信
2015/02/15 职场文书
与死神共舞观后感
2015/06/15 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android