Array对象中的sort()方法是一个很高效的排序方法,用于对数组进行排序。其基本用法有两种:

1、不带参数

数组名.sort();

这种用法只适用于对英文字符串组成的数组按升序排序,结果在原数组中。

2、带参数

sort()方法的参数必须是一个函数,函数可以带一个或两个参数,表示数组的元素,返回值必须是正负零,表示数组元素相比较的办法。

数组名.sort( function(a,b){return 正、负、零;
});

以下用例子给出常见排序的做法。

一、字符串数组的排序

1、升序排序

<script>var a = ["Java","C","C++","JavaScript","jQuery","PHP","Python"];a.sort();console.log(a);
</script>

排序结果为:[“C”, “C++”, “Java”, “JavaScript”, “PHP”, “Python”, “jQuery”]。
注意:在英文编码中,小写字母比大写字母大,所以"jQuery"被排在了最后。

2、升序排序,不区分大小写

<script>var a = ["Java","C","C++","JavaScript","jQuery","PHP","Python"];a.sort(function (x, y) {if(x.toLowerCase()>y.toLowerCase())return 1;else if(x.toLowerCase()<y.toLowerCase())return -1;else return 0;});console.log(a);
</script>

排序结果为:[“C”,“C++”,“Java”,“JavaScript”,“jQuery”,“PHP”,“Python”]。

3、降序排序

<script>var a = ["Java","C","C++","JavaScript","jQuery","PHP","Python"];a.sort(function (x, y) {if(x<y)return 1;else if(x>y)return -1;else return 0;});console.log(a);
</script>

排序结果为:[“jQuery”,“Python”,“PHP”,“JavaScript”,“Java”,“C++”,“C”]。

二、数值数组的排序

1、升序排序

<script>var a = [5,10,110,45,265,88,9];a.sort(function (x, y) {return x-y;});console.log(a);
</script>

排序结果为:[5, 9, 10, 45, 88, 110, 265]。

2、降序排序

<script>var a = [5,10,110,45,265,88,9];a.sort(function (x, y) {return y-x;});console.log(a);
</script>

排序结果为:[265, 110, 88, 45, 10, 9, 5]。

三、中文数组的排序

中文可以按拼音顺序排序。

1、按拼音升序排序

<script>var a = ["北京","南京","上海","深圳","哈尔滨","呼和浩特","南宁"];a.sort(function (x,y) {return x.localeCompare(y,"zh");});console.log(a);
</script>

排序结果为:[“北京”, “哈尔滨”, “呼和浩特”, “南京”, “南宁”, “上海”, “深圳”]。
localeCompare()是一个新出的字符串比较函数,低版本浏览器可能不支持。

2、按拼音降序排序

<script>var a = ["北京","南京","上海","深圳","哈尔滨","呼和浩特","南宁"];a.sort(function (x,y) {return -x.localeCompare(y,"zh");});console.log(a);
</script>

排序结果为:[“深圳”,“上海”,“南宁”,“南京”,“呼和浩特”,“哈尔滨”,“北京”]。

四、对象数组的排序

如果数组元素是对象,我们可按对象的某个属性进行排序。

1、按对象的指定字段排序

例:按成绩降序排序

<script>var a = [{no:"001",name:"张琪",score:80},{no:"002",name:"李颖",score:72},{no:"003",name:"李新宇",score:75},{no:"004",name:"王华",score:72},{no:"005",name:"刘江",score:82}];a.sort(function (x,y) {return y.score-x.score;});console.log(a);
</script>

排序结果为:
0: {no: “005”, name: “刘江”, score: 82}
1: {no: “001”, name: “张琪”, score: 80}
2: {no: “003”, name: “李新宇”, score: 75}
3: {no: “002”, name: “李颖”, score: 72}
4: {no: “004”, name: “王华”, score: 72}

2、双字段排序

例:按年龄从低到高排序,年龄相同时按性别排序

<script>var a = [{name:"张琪",gender:"男",age:18},{name:"李颖",gender:"女",age:17},{name:"李新宇",gender:"男",age:18},{name:"王华",gender:"女",age:18},{name:"刘江",gender:"男",age:17}];a.sort(function (x,y) {if(x.age!=y.age)return x.age-y.age;else {if(x.gender=="男")return 1;elsereturn -1;}});console.log(a);
</script>

排序结果为:
0: {name: “李颖”, gender: “女”, age: 17}
1: {name: “刘江”, gender: “男”, age: 17}
2: {name: “王华”, gender: “女”, age: 18}
3: {name: “张琪”, gender: “男”, age: 18}
4: {name: “李新宇”, gender: “男”, age: 18}

小结:用sort()方法排序时,大部分情况都应该指定比较函数,这个函数给出的是数组中两个元素比较的办法,函数的返回值必须是正负零。你可以自己制定排序规则,这是sort()方法的强大之处。

如何使用JS的排序函数sort()相关推荐

  1. R语言数据排序函数sort, order rank实战

    R语言数据排序函数sort, order & rank实战 目录 R语言数据排序函数sort, order & rank实战 #sort vs. order vs. rank函数基础 ...

  2. C++ 排序函数 sort(),qsort()的用法

    想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~ 所以自己总结了一下,首先看sort函数见下表: 函数名 功能描述 sort 对给定区 ...

  3. python 排序函数 sort sorted 简介

    sort() 是Python列表的一个内置的排序方法,list.sort() 方法排序时直接修改原列表,返回None: sort() 是Python内置的一个排序函数,它会从一个迭代器返回一个排好序的 ...

  4. 指针:调用自定义排序函数sort,对输入的n个数进行从小到大输出。

    Description 自定义函数sort(int *p, int n),功能是对n个数排序.在main函数中,调用它,对输入的任意个数排序. Input 多组测试数据,先输入n(n<100), ...

  5. 排序函数(sort()、sorted()、argsort()函数)

    python的内建排序函数有 sort.sorted两个. 1.基础的序列升序排序直接调用sorted()方法即可 1 ls = list([5, 2, 3, 1, 4]) 2 new_ls = so ...

  6. python 数组排序sort_Python之排序函数sort() 和 sorted()

    sort() 是Python列表的一个内置的排序方法,list.sort() 方法排序时直接修改原列表,返回None: sort() 是Python内置的一个排序函数,它会从一个迭代器返回一个排好序的 ...

  7. php中asort 排序语句,php中的几个经典排序函数(sort,asort,ksort等)

    1 2 3 4 5 6 7 8sort() 函数用于对数组单元从低到高进行排序. rsort() 函数用于对数组单元从高到低进行排序. asort() 函数用于对数组单元从低到高进行排序并保持索引关系 ...

  8. 排序函数 sort()、sorted()、argsort()函数

    sort()函数 python的内建排序函数有 sort.sorted两个.而sort ()可以直接对列表进行排序 用法:list.sort(func=None, key=None, reverse= ...

  9. c++自带的排序函数sort

    其实C语言里也有qsort排序函数,但相较于C++的sort排序函数更加繁琐,不推荐使用.下面来介绍怎么使用C++里的sort排序函数. Sort的用法 1.sort函数的使用必须加上头文件#incl ...

最新文章

  1. GDOI2017 旅游记
  2. python浅蓝色对应的代码_浅蓝色Python模块不在m上工作
  3. Towards Efficient Privacy-Preserving Inspection of TLS Encrypted Traffic
  4. Cere Network 将于 Republic、DAO Maker 和 Polkastarter 上进行公售
  5. 想自学python看哪位的视频比较好-python自学视频看这个就对了
  6. 使得在虚拟机能复制粘贴 -- Linux安装增强
  7. c语言解二元二次方程组
  8. 数据库系统原理——实验四
  9. iSCSI服务部署网络存储---共享网络存储设备
  10. maven报错The forked VM terminated without saying properly goodbye. VM crash or System.exit called
  11. SOLIDWORKS 2018官方正版功能介绍
  12. 计算机基础课程-书籍和视频教程资源
  13. Linux学习-66-系统日志管理
  14. Unity3d Windows播放视频(视频流)功能组/插件支持对比
  15. 平时编程过程中一些总结和难点(持续更新中)
  16. Harbor集成Clair镜像安全扫描并手动导入漏洞数据
  17. ZOJ Monthly, August 2012 题解
  18. C语言做离散傅里叶变换和逆变换
  19. 如何完整的做一个web项目,进阶篇(1)JSP学习
  20. 信号完整性研究系列--什么是地弹

热门文章

  1. 腾讯Web前端JX框架入门教程(一)
  2. Delphi使用迅雷的开放下载引擎下载
  3. LU分解完成利用节点电压法的简易电路求解程序(一)
  4. 几米经典语录--生活永远不是童话
  5. 边看边互动!优酷酷看模式技术揭秘
  6. 【精益生产】高效生产,需要这样的精益生产线!
  7. Kerberos 简介——教你做个好人
  8. Lattice系列FPGA入门相关1(Lattice系列FPGA简介)
  9. 3.12信号概述(第二阶段)
  10. 英国留学生考文垂大学本科没有毕业只能原地坐以待毙