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 相关文章推荐
学习YUI.Ext 第三天
Mar 10 Javascript
newxtree.js代码
Mar 13 Javascript
javascript 兼容FF的onmouseenter和onmouseleave的代码
Jul 19 Javascript
jquery特效 幻灯片效果示例代码
Jul 16 Javascript
JQuery创建DOM节点的方法
Jun 11 Javascript
jQuery基础知识点总结(必看)
May 31 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
Aug 31 Javascript
提高Node.js性能的应用技巧分享
Aug 10 Javascript
基于node搭建服务器,写接口,调接口,跨域的实例
May 13 Javascript
JavaScript中 ES6变量的结构赋值
Jul 10 Javascript
layui中使用jquery控制radio选中事件的示例代码
Aug 15 jQuery
详解微信小程序input标签正则初体验
Aug 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之短标签开启设置
2013/06/17 PHP
初识PHP中的Swoole
2016/04/05 PHP
Yii使用smsto短信接口的函数demo示例
2016/07/13 PHP
Laravel关系模型指定条件查询方法
2019/10/10 PHP
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
JS实现5秒钟自动封锁div层的方法
2015/02/20 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
ECMAScript6轮播图实践知识总结
2016/08/17 Javascript
web前端开发upload上传头像js示例代码
2016/10/22 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
angular+bootstrap的双向数据绑定实例
2017/03/03 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
vue自定义指令directive的使用方法
2019/04/07 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
jQuery实现简单评论功能
2020/08/19 jQuery
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
深入理解Python中的内置常量
2017/05/20 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
酒吧员工的岗位职责
2013/11/26 职场文书
小学生家长评语大全
2014/02/10 职场文书
《火烧云》教学反思
2014/04/12 职场文书
个人收入证明模板
2014/09/18 职场文书
公司合并协议书范本
2014/09/30 职场文书
PostgreSQL聚合函数介绍以及分组和排序
2022/04/12 PostgreSQL