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 相关文章推荐
JS hashMap实例详解
May 26 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
Jan 19 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
Mar 04 Javascript
jquery平滑滚动到顶部插件使用详解
May 08 jQuery
Bootstrap table使用方法总结
May 10 Javascript
Node.js中你不可不精的Stream(流)
Jun 08 Javascript
element-ui 的el-button组件中添加自定义颜色和图标的实现方法
Oct 26 Javascript
JavaScript基础之静态方法和实例方法分析
Dec 26 Javascript
VeeValidate 的使用场景以及配置详解
Jan 11 Javascript
Windows上node.js的多版本管理工具用法实例分析
Nov 06 Javascript
three.js 利用uv和ThreeBSP制作一个快递柜功能
Aug 18 Javascript
使用javascript解析二维码的三种方式
Nov 11 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
改变Apache端口等配置修改方法
2008/06/05 PHP
Smarty变量用法详解
2016/05/11 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
php session的应用详细介绍
2017/03/22 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
jQuery左右滚动支持图片放大缩略图图片轮播代码分享
2015/08/26 Javascript
js实现索引图片切换效果
2015/11/21 Javascript
JS实现的仿淘宝交易倒计时效果
2015/11/27 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
原生js中ajax访问的实例详解
2017/09/19 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
JS中this的4种绑定规则详解
2020/02/04 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
Vue3 响应式侦听与计算的实现
2020/11/11 Javascript
Python中List.index()方法的使用教程
2015/05/20 Python
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
Python3使用正则表达式爬取内涵段子示例
2018/04/22 Python
python 异或加密字符串的实例
2018/10/14 Python
Python中dict和set的用法讲解
2019/03/28 Python
在django模板中实现超链接配置
2019/08/21 Python
Python实现线性插值和三次样条插值的示例代码
2019/11/13 Python
python中str内置函数用法总结
2020/12/27 Python
悦木之源美国官网:Origins美国
2016/08/01 全球购物
中药专业大学生医药工作求职信
2013/10/25 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
应聘会计求职信
2014/06/11 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技