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 相关文章推荐
疯掉了,尽然有js写的操作系统
Apr 23 Javascript
不懂JavaScript应该怎样学
Apr 16 Javascript
JQuery为textarea添加maxlength属性的代码
Apr 07 Javascript
JS加jquery简单实现标签元素的显示或隐藏
Sep 23 Javascript
原生javascript实现拖动元素示例代码
Sep 01 Javascript
jQuery可见性过滤选择器用法示例
Sep 09 Javascript
vue.js 1.x与2.0中js实时监听input值的变化
Mar 15 Javascript
基于LayUI分页和LayUI laypage分页的使用示例
Aug 02 Javascript
使用ng-packagr打包Angular的方法示例
Sep 21 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
Jul 19 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
Sep 11 Javascript
对layui数据表格动态cols(字段)动态变化详解
Oct 25 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
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
jQuery live( type, fn ) 委派事件实现
2009/10/11 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
JavaScript实现自动切换图片代码
2016/10/11 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
axios对请求各种异常情况处理的封装方法
2018/09/25 Javascript
一步快速解决微信小程序中textarea层级太高遮挡其他组件
2019/03/04 Javascript
Vue-CLI 项目在pycharm中配置方法
2019/08/30 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
vue 使用lodash实现对象数组深拷贝操作
2020/09/10 Javascript
Python3.6简单操作Mysql数据库
2017/09/12 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
详解Python locals()的陷阱
2019/03/26 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
Python中遍历列表的方法总结
2019/06/27 Python
浅谈Python type的使用
2019/11/19 Python
在Python中实现函数重载的示例代码
2019/12/12 Python
Python socket处理client连接过程解析
2020/03/18 Python
python实现文法左递归的消除方法
2020/05/22 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
Urban Outfitters英国官网:美国平价服饰品牌
2016/11/25 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
说一下Linux下有关用户和组管理的命令
2014/08/18 面试题
高中生家长寄语大全
2014/04/03 职场文书
班委竞选演讲稿
2014/04/28 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
python使用PySimpleGUI设置进度条及控件使用
2021/06/10 Python
Redis分布式锁Redlock的实现
2021/08/07 Redis