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下查找父节点的简单方法
Aug 13 Javascript
js 动态文字滚动的例子
Jan 17 Javascript
Array.prototype.concat不是通用方法反驳[译]
Sep 20 Javascript
jquery重新播放css动画所遇问题解决
Aug 21 Javascript
jQuery中:contains选择器用法实例
Dec 30 Javascript
javascript中类的定义方式详解(四种方式)
Dec 22 Javascript
原生js制作日历控件实例分享
Apr 06 Javascript
js 获取本地文件及目录的方法(推荐)
Nov 10 Javascript
vue组件name的作用小结
May 23 Javascript
vue组件创建的三种方式小结
Feb 03 Javascript
vue路由实现登录拦截
Mar 24 Vue.js
如何在CocosCreator里画个炫酷的雷达图
Apr 16 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
来自phpguru得Php Cache类源码
2010/04/15 PHP
那些年一起学习的PHP(三)
2012/03/22 PHP
关于PHP模板Smarty的初级使用方法以及心得分享
2013/06/21 PHP
php 批量替换程序的具体实现代码
2013/10/04 PHP
Zend Framework页面缓存实例
2014/06/25 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
JavaScript 指导方针
2007/04/05 Javascript
兼容FireFox 的 js 日历 支持时间的获取
2009/03/04 Javascript
Jquery.addClass始终无效原因分析
2013/09/08 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
Angularjs制作简单的路由功能demo
2015/04/14 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
angular的输入和输出的使用方法
2018/09/22 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
express.js中间件说明详解
2019/03/19 Javascript
vue element中axios下载文件(后端Python)
2019/05/10 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
Windows环境下python环境安装使用图文教程
2018/03/13 Python
Django时区详解
2019/07/24 Python
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
台湾良兴购物网:EcLife
2019/12/01 全球购物
领导调研接待方案
2014/02/27 职场文书
动画设计系毕业生求职信
2014/07/15 职场文书
孔庙导游词
2015/02/04 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP