如何使用JS的排序函数sort()
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()相关推荐
- R语言数据排序函数sort, order rank实战
R语言数据排序函数sort, order & rank实战 目录 R语言数据排序函数sort, order & rank实战 #sort vs. order vs. rank函数基础 ...
- C++ 排序函数 sort(),qsort()的用法
想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~ 所以自己总结了一下,首先看sort函数见下表: 函数名 功能描述 sort 对给定区 ...
- python 排序函数 sort sorted 简介
sort() 是Python列表的一个内置的排序方法,list.sort() 方法排序时直接修改原列表,返回None: sort() 是Python内置的一个排序函数,它会从一个迭代器返回一个排好序的 ...
- 指针:调用自定义排序函数sort,对输入的n个数进行从小到大输出。
Description 自定义函数sort(int *p, int n),功能是对n个数排序.在main函数中,调用它,对输入的任意个数排序. Input 多组测试数据,先输入n(n<100), ...
- 排序函数(sort()、sorted()、argsort()函数)
python的内建排序函数有 sort.sorted两个. 1.基础的序列升序排序直接调用sorted()方法即可 1 ls = list([5, 2, 3, 1, 4]) 2 new_ls = so ...
- python 数组排序sort_Python之排序函数sort() 和 sorted()
sort() 是Python列表的一个内置的排序方法,list.sort() 方法排序时直接修改原列表,返回None: sort() 是Python内置的一个排序函数,它会从一个迭代器返回一个排好序的 ...
- php中asort 排序语句,php中的几个经典排序函数(sort,asort,ksort等)
1 2 3 4 5 6 7 8sort() 函数用于对数组单元从低到高进行排序. rsort() 函数用于对数组单元从高到低进行排序. asort() 函数用于对数组单元从低到高进行排序并保持索引关系 ...
- 排序函数 sort()、sorted()、argsort()函数
sort()函数 python的内建排序函数有 sort.sorted两个.而sort ()可以直接对列表进行排序 用法:list.sort(func=None, key=None, reverse= ...
- c++自带的排序函数sort
其实C语言里也有qsort排序函数,但相较于C++的sort排序函数更加繁琐,不推荐使用.下面来介绍怎么使用C++里的sort排序函数. Sort的用法 1.sort函数的使用必须加上头文件#incl ...
最新文章
- GDOI2017 旅游记
- python浅蓝色对应的代码_浅蓝色Python模块不在m上工作
- Towards Efficient Privacy-Preserving Inspection of TLS Encrypted Traffic
- Cere Network 将于 Republic、DAO Maker 和 Polkastarter 上进行公售
- 想自学python看哪位的视频比较好-python自学视频看这个就对了
- 使得在虚拟机能复制粘贴 -- Linux安装增强
- c语言解二元二次方程组
- 数据库系统原理——实验四
- iSCSI服务部署网络存储---共享网络存储设备
- maven报错The forked VM terminated without saying properly goodbye. VM crash or System.exit called
- SOLIDWORKS 2018官方正版功能介绍
- 计算机基础课程-书籍和视频教程资源
- Linux学习-66-系统日志管理
- Unity3d Windows播放视频(视频流)功能组/插件支持对比
- 平时编程过程中一些总结和难点(持续更新中)
- Harbor集成Clair镜像安全扫描并手动导入漏洞数据
- ZOJ Monthly, August 2012 题解
- C语言做离散傅里叶变换和逆变换
- 如何完整的做一个web项目,进阶篇(1)JSP学习
- 信号完整性研究系列--什么是地弹