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 学习笔记 选择器之六
Jul 23 Javascript
jquery一般方法介绍 入门参考
Jun 21 Javascript
如何使用jquery动态加载js,css文件实现代码
Apr 03 Javascript
简单的JavaScript互斥锁分享
Feb 02 Javascript
高效的jquery数字滚动特效
Dec 17 Javascript
AngularJS 让人爱不释手的八种功能
Mar 23 Javascript
js显示动态时间的方法详解
Aug 20 Javascript
jQuery实用密码强度检测
Mar 02 Javascript
JavaScript设计模式之单例模式详解
Jun 09 Javascript
vue开发调试神器vue-devtools使用详解
Jul 13 Javascript
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
JavaScript Math对象和调试程序的方法分析
May 13 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 应用程序的安全 -- 不能违反的四条安全规则
2006/11/26 PHP
PHP重定向的3种方式
2013/03/07 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
基于AngularJS+HTML+Groovy实现登录功能
2016/02/17 Javascript
使用javascript插入样式
2016/03/14 Javascript
不使用script导入js文件的几种方法
2016/10/27 Javascript
vue.js层叠轮播效果的实例代码
2018/11/08 Javascript
详解Vue 全局变量,局部变量
2019/04/17 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
python ipset管理 增删白名单的方法
2019/01/14 Python
对python 判断数字是否小于0的方法详解
2019/01/26 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
如何用C代码给Python写扩展库(Cython)
2019/05/17 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
python把ipynb文件转换成pdf文件过程详解
2019/07/09 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
Python序列化pickle模块使用详解
2020/03/05 Python
python Scrapy爬虫框架的使用
2021/01/21 Python
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
一名女生的自荐信
2013/12/08 职场文书
老师对学生的寄语
2014/04/09 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
2016年乡镇七一建党节活动总结
2016/04/05 职场文书
python 离散点图画法的实现
2022/04/01 Python
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL