Sort()函数的多种用法


Posted in Javascript onMarch 20, 2016

sort() 方法用于对数组的元素进行排序。包含于头文件algorithm

语法

arrayObject.sort(sortby)

参数 描述
sortby 可选。规定排序顺序。必须是函数。

返回值

对数组的引用。请注意,数组在原数组上进行排序,不生成副本。

一、默认情况

在默认情况下, sort() 方法按升序排列数组项。为了实现排序, sort() 方法会调用每个数组项的 toString() 转型方法,然后比较得到的字符串,已确定如何排序。如下:

var values = ["orange","apple","banana"];
values.sort();
console.log(values);//结果["apple", "banana", "orange"]

但是,即使数组中的每一项都是数值,sort() 方法比较的也是字符串,如下:

var values = [,,,,];
values.sort();
console.log(values);//结果[, , , , ]

二、对数值进行排序

sort() 方法可以接收一个比较函数作为参数。

比较函数接收两个参数,如果第一个参数应该位于第二参数之前则返回一个负数,如果两个参数相等则返回0,如果第一个参数位于第二个之后则返回一个正数。

function compare(a, b){
return (a - b);
}//按升序排列的比较函数
var values = [,,,,];
values.sort(compare);
console.log(values);//结果[, , , , ]

三、根据某个对象属性对数组进行排序

先定义一个函数,它接收一个属性名,然后根据这个属性名来创建一个比较函数。下面是这个函数的定义:

function createComparisonFunction(propertyName){
return function(object, object){
var a = object[propertyName];
var b = object[propertyName];
if(a < b){
return -;
}else if(a > b){
return ;
}else{
return ;
}
}
}//返回一个根据属性名创建的按升序排列的比较函数

在内部函数接收到propertyName参数后,它会使用方括号表示法来取得给定属性的值。

上面这个函数可以在像在下面例子中这样使用。

var data = [{name:"Lily", age: }, {name:"Judy", age: }];
data.sort(createComparisonFunction("name"));
console.log(data[].name);//Judy
data.sort(createComparisonFunction("age"));
console.log(data[].name);//Lily

以上内容是小编给大家介绍的Sort()函数的多种用法,希望对大家以上帮助!

Javascript 相关文章推荐
JQuery选择器特辑 详细小结
May 14 Javascript
onkeyup,onkeydown和onkeypress的区别介绍
Oct 21 Javascript
JavaScript中数组成员的添加、删除介绍
Dec 30 Javascript
JavaScript针对网页节点的增删改查用法实例
Feb 02 Javascript
关于动态执行代码(js的Eval)实例详解
Aug 15 Javascript
js 判断各种数据类型的简单方法(推荐)
Aug 29 Javascript
javascript中json基础知识详解
Jan 19 Javascript
angularjs中回车键触发某一事件的方法
Apr 24 Javascript
原生JavaScrpit中异步请求Ajax实现方法
Nov 03 Javascript
npm scripts 使用指南详解
Oct 08 Javascript
基于vue、react实现倒计时效果
Aug 26 Javascript
JavaScript ES 模块的使用
Nov 12 Javascript
简单理解JavaScript中的封装与继承特性
Mar 19 #Javascript
JavaScript的函数式编程基础指南
Mar 19 #Javascript
深入解析JavaScript中函数的Currying柯里化
Mar 19 #Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
Mar 19 #Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
Aug 21 #Javascript
JQuery用户名校验的具体实现
Mar 18 #Javascript
基于javascript实现页面加载loading效果
Sep 15 #Javascript
You might like
浅谈电磁辐射对健康的影响
2021/03/01 无线电
对比PHP对MySQL的缓冲查询和无缓冲查询
2016/07/01 PHP
thinkPHP框架中执行事务的方法示例
2018/05/31 PHP
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
jquery EasyUI的formatter格式化函数代码
2011/01/12 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
2015/03/09 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
2015/12/01 Javascript
js不间断滚动的简单实现
2016/06/03 Javascript
使用React实现轮播效果组件示例代码
2016/09/05 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
2018/09/30 Javascript
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
2019/12/26 Javascript
js实现贪吃蛇小游戏(加墙)
2020/07/31 Javascript
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
用Python的urllib库提交WEB表单
2009/02/24 Python
Python 数据结构之堆栈实例代码
2017/01/22 Python
python email smtplib模块发送邮件代码实例
2018/04/26 Python
Pytorch之保存读取模型实例
2019/12/30 Python
python中with用法讲解
2020/02/07 Python
windows、linux下打包Python3程序详细方法
2020/03/17 Python
python中二分查找法的实现方法
2020/12/06 Python
python 录制系统声音的示例
2020/12/21 Python
C#里面可以避免一个类被其他类继承么?如何?
2013/09/26 面试题
信息技术毕业生自荐信范文
2014/03/13 职场文书
小学家长意见怎么写
2015/06/03 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
mysql数据库入门第一步之创建表
2021/05/14 MySQL
Oracle11g r2 卸载干净重装的详细教程(亲测有效已重装过)
2021/06/04 Oracle
浅谈 JavaScript 沙箱Sandbox
2021/11/02 Javascript