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 相关文章推荐
Google Map API更新实现用户自定义标注坐标
Jul 29 Javascript
理解Javascript_06_理解对象的创建过程
Oct 15 Javascript
jQuery性能优化28条建议你值得借鉴
Feb 16 Javascript
判断一个对象是否为jquery对象的方法
Mar 12 Javascript
Javascript中实现trim()函数的两种方法
Feb 04 Javascript
JS实现点击按钮后框架内载入不同网页的方法
May 05 Javascript
AngularJS之依赖注入模拟实现
Aug 19 Javascript
jQuery中的100个技巧汇总
Dec 15 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
Jan 21 Javascript
JS判断字符串是否为整数的方法--简单的正则判断
Jul 23 Javascript
深入浅出理解JavaScript闭包的功能与用法
Aug 01 Javascript
原生js实现的观察者和订阅者模式简单示例
Apr 18 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
php的curl实现get和post的代码
2008/08/23 PHP
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
基于jquery的一个简单的脚本验证插件
2010/04/05 Javascript
前端开发必须知道的JS之原型和继承
2010/07/06 Javascript
jQuery效果 slideToggle() 方法(在隐藏和显示之间切换)
2011/06/28 Javascript
JS 去前后空格大全(IE9亲测)
2013/07/15 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
jquery获取input type=text中的值的各种方式(总结)
2016/12/02 Javascript
ECMAScript6--解构
2017/03/30 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
Python基于TCP实现会聊天的小机器人功能示例
2018/04/09 Python
Django rest framework工具包简单用法示例
2018/07/20 Python
python 重命名轴索引的方法
2018/11/10 Python
Python作用域与名字空间原理详解
2020/03/21 Python
使用 Python 读取电子表格中的数据实例详解
2020/04/17 Python
python构造IP报文实例
2020/05/05 Python
Python Pandas数据分析工具用法实例
2020/11/05 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
viagogo英国票务平台:演唱会、体育比赛、戏剧门票
2017/03/24 全球购物
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
大学本科生的个人自我评价
2013/12/09 职场文书
大型会议接待方案
2014/03/01 职场文书
可口可乐广告词
2014/03/20 职场文书
中学生励志演讲稿
2014/04/26 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
社会发展项目建议书
2014/08/25 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
党员反腐倡廉学习心得体会
2015/08/15 职场文书
python利用pandas分析学生期末成绩实例代码
2021/07/09 Python
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers