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 相关文章推荐
一段多浏览器的&quot;复制到剪贴板&quot;javascript代码
Mar 27 Javascript
JavaScript 输入框内容格式验证代码
Feb 11 Javascript
suggestion开发小结以及对键盘事件的总结(针对中文输入法状态)
Dec 20 Javascript
实现点击列表弹出列表索引的两种方式
Mar 08 Javascript
AngularJS 中的指令实践开发指南(一)
Mar 20 Javascript
js轮播图代码分享
Jul 14 Javascript
从零开始做一个pagination分页组件
Mar 15 Javascript
JavaScript ES6中const、let与var的对比详解
Jun 18 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
Nov 21 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
Apr 28 Javascript
微信小程序返回上一页传参并刷新过程解析
Dec 13 Javascript
Vue路由 重定向和别名的区别说明
Sep 09 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
DC漫画《蝙蝠侠和猫女》图透 猫女怀孕老爷当爹
2020/04/09 欧美动漫
PHP四大安全策略
2014/03/12 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
php跨站攻击实例分析
2014/10/28 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
一个JQuery操作Table的代码分享
2012/03/30 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
js之onload事件的一点使用心得
2013/08/14 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
使用JQuery 加载页面时调用JS的实现方法
2016/05/30 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
[01:14]辉夜杯战队访谈宣传片—NEWBEE.Y
2015/12/26 DOTA
关于keras中keras.layers.merge的用法说明
2020/05/23 Python
django有哪些好处和优点
2020/09/01 Python
Python 内存管理机制全面分析
2021/01/16 Python
HTML5 canvas 基本语法
2009/08/26 HTML / CSS
HTML5中drawImage用法分析
2014/12/01 HTML / CSS
雪花秀美国官方网站:韩国著名草本护肤化妆品品牌
2016/10/19 全球购物
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
文明家庭先进事迹材
2014/01/27 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
防火标语大全
2014/10/06 职场文书
致运动员赞词
2015/07/22 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
Pytest之测试命名规则的使用
2021/04/16 Python
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫