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 相关文章推荐
JavaScript去除空格的几种方法
Oct 03 Javascript
一些常用的Javascript函数
Dec 22 Javascript
csdn 博客中实现运行代码功能实现
Aug 29 Javascript
jquery操作select option 的代码小结
Jun 21 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
Nov 04 Javascript
jquery实现右侧栏菜单选择操作
Mar 04 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
May 17 Javascript
AngularJS之依赖注入模拟实现
Aug 19 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
Jul 03 Javascript
vue.js实现单选框、复选框和下拉框示例
Jul 18 Javascript
vue-router路由懒加载和权限控制详解
Dec 13 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
Mar 23 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+xslt在windows平台上
2006/10/09 PHP
Yii配置文件用法详解
2014/12/04 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
jquery 表单进行客户端验证demo
2009/08/24 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
JS实现局部选择打印和局部不选择打印
2014/04/03 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
js实现的动画导航菜单效果代码
2015/09/10 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
终于实现了!精彩的jquery弹幕效果
2016/07/18 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
Node.JS利用PhantomJs抓取网页入门教程
2017/05/19 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
JavaScript之Canvas_动力节点Java学院整理
2017/07/04 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
Python通过socketserver处理多个链接
2020/03/18 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
速比涛英国官网:Speedo英国
2019/07/15 全球购物
老公爱的承诺书
2014/03/31 职场文书
祖国在我心中演讲稿500字
2014/05/04 职场文书
药店采购员岗位职责
2014/09/30 职场文书
可怜妈妈观后感
2015/06/09 职场文书
工厂无线对讲系统解决方案
2022/02/18 无线电
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL