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 相关文章推荐
实现复选框全选/全不选切换
Dec 23 Javascript
jquery修改属性值实例代码(设置属性值)
Jan 06 Javascript
Js数组排序函数sort()介绍
Jun 08 Javascript
JavaScript实现点击自动选择TextArea文本的方法
Jul 02 Javascript
jQuery获取attr()与prop()属性值的方法及区别介绍
Jul 06 Javascript
基于JS实现的随机数字抽签实例
Dec 08 Javascript
微信小程序 小程序制作及动画(animation样式)详解
Jan 06 Javascript
Vue 滚动行为的具体使用方法
Sep 13 Javascript
浅谈AngularJS中使用$resource(已更新)
Sep 14 Javascript
vue项目如何刷新当前页面的方法
May 18 Javascript
详解vuex 渐进式教程实例代码
Nov 27 Javascript
浅谈Vue SSR中的Bundle的具有使用
Nov 21 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开发模式(简写版)
2007/03/15 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
Bootstrap学习系列之使用 Bootstrap Typeahead 组件实现百度下拉效果
2016/07/07 Javascript
如何利用模板将HTML从JavaScript中抽离
2016/10/08 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
微信小程序 出现错误:{&quot;baseresponse&quot;:{&quot;errcode&quot;:-80002,&quot;errmsg&quot;:&quot;&quot;}}解决办法
2017/02/23 Javascript
微信小程序 向左滑动删除功能的实现
2017/03/10 Javascript
js中toString()和String()区别详解
2017/03/23 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
2019/10/28 Javascript
详解如何修改 node_modules 里的文件
2020/05/22 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
vue element-ul实现展开和收起功能的实例代码
2020/11/25 Vue.js
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
python timestamp和datetime之间转换详解
2017/12/11 Python
Python实现将一个正整数分解质因数的方法分析
2017/12/14 Python
Python解决八皇后问题示例
2018/04/22 Python
解决tensorflow训练时内存持续增加并占满的问题
2020/01/19 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
耐克奥地利官网:Nike奥地利
2019/08/16 全球购物
什么是smarty? Smarty的优点是什么?
2013/08/11 面试题
旅游管理实习自我鉴定
2013/09/29 职场文书
优秀班干部事迹材料
2014/01/26 职场文书
产品发布会策划方案
2014/05/12 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
2015年乡镇卫生院工作总结
2015/04/22 职场文书
开除通知书范本
2015/04/25 职场文书
进行数据处理的6个 Python 代码块分享
2022/04/06 Python
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android