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 相关文章推荐
Convert Seconds To Hours
Jun 16 Javascript
javascript 有趣而诡异的数组
Apr 06 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
Oct 11 Javascript
javascript面向对象之定义成员方法实例分析
Jan 13 Javascript
js绘制购物车抛物线动画
Nov 18 Javascript
Angular多选、全选、批量选择操作实例代码
Mar 10 Javascript
JavaScript定义函数的三种实现方法
Sep 23 Javascript
js定时器+简单的动画效果实例
Nov 10 Javascript
浅谈ajax请求不同页面的微信JSSDK问题
Feb 26 Javascript
详解ES6 Promise的生命周期和创建
Aug 18 Javascript
layui点击数据表格添加或删除一行的例子
Sep 12 Javascript
微信小程序8种数据通信的方式小结
Feb 03 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.ini中date.timezone设置分析
2011/07/29 PHP
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
thinkphp分页实现效果
2016/10/13 PHP
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
jQuery实现带动画效果的多级下拉菜单代码
2015/09/08 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
Vue Router中应用中间件的方法
2020/08/06 Javascript
Python中防止sql注入的方法详解
2017/02/25 Python
老生常谈python之鸭子类和多态
2017/06/13 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
python实现连续图文识别
2018/12/18 Python
如何在django里上传csv文件并进行入库处理的方法
2019/01/02 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
Python实现汇率转换操作
2020/05/03 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
python MD5加密的示例
2020/10/19 Python
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
酒店司机岗位职责
2013/12/14 职场文书
财务出纳岗位职责
2014/02/03 职场文书
搞笑爱情保证书
2014/04/29 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
朋友聚会祝酒词
2015/08/10 职场文书
用基于python的appium爬取b站直播消费记录
2021/04/17 Python
Ajax异步刷新功能及简单案例
2021/11/20 Javascript