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 相关文章推荐
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
Aug 28 Javascript
js charAt的使用示例
Feb 18 Javascript
实现网页页面跳转的几种方法(meta标签、js实现、php实现)
May 20 Javascript
JS留言功能的简单实现案例(推荐)
Jun 23 Javascript
详解Vue生命周期的示例
Mar 10 Javascript
JavaScript设计模式之策略模式详解
Jun 09 Javascript
五步轻松实现zTree的使用
Nov 01 Javascript
Nuxt升级2.0.0时出现的问题(小结)
Oct 08 Javascript
详解为生产环境编译Angular2应用的方法
Dec 10 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
Jul 19 Javascript
Element-UI+Vue模式使用总结
Jan 02 Javascript
JS如何在数组指定位置插入元素
Mar 10 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 addcslashes()函数讲解
2019/02/03 PHP
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
jQuery 翻牌或百叶窗效果(内容三秒自动切换)
2012/06/14 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
node.js中实现kindEditor图片上传功能的方法教程
2017/04/26 Javascript
详解原生js实现offset方法
2017/06/15 Javascript
小发现之浅谈location.search与location.hash的问题
2017/06/23 Javascript
vue 打包后的文件部署到express服务器上的方法
2017/08/09 Javascript
基于vue-cli创建的项目的目录结构及说明介绍
2017/11/23 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
2017/12/21 Javascript
浅谈微信小程序flex布局基础
2018/09/10 Javascript
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
python得到一个excel的全部sheet标签值方法
2018/12/10 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
pytorch torchvision.ImageFolder的用法介绍
2020/02/20 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
少先队学雷锋活动总结范文
2014/03/09 职场文书
经典婚礼主持词
2014/03/13 职场文书
服务行业口号
2014/06/11 职场文书
2014年度党员自我评议
2014/09/13 职场文书
2014年工作总结及2015工作计划
2014/12/12 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
收银员岗位职责范本
2015/04/07 职场文书
校友会致辞
2015/07/30 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
大学生饮品店创业计划书范文
2019/07/10 职场文书
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python
Python学习之迭代器详解
2022/04/01 Python
Windows server 2012搭建FTP服务器
2022/04/29 Servers
python库Tsmoothie模块数据平滑化异常点抓取
2022/06/10 Python