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中实现命名空间
Nov 23 Javascript
jQuery select的操作实现代码
May 06 Javascript
jquery实现的省市区三级联动
Apr 02 Javascript
javascript数组排序汇总
Jul 07 Javascript
jQuery操作json常用方法示例
Jan 04 Javascript
jquery中each循环的简单回滚操作
May 05 jQuery
Vue基于NUXT的SSR详解
Oct 24 Javascript
详解项目升级到vue-cli3的正确姿势
Jan 28 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
Jun 07 Javascript
Vue+ElementUI项目使用webpack输出MPA的方法
Aug 27 Javascript
js实现鼠标点击页面弹出自定义文字效果
Dec 24 Javascript
vue实现书本翻页动画效果实例详解
Apr 08 Vue.js
简单理解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
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
Prototype使用指南之array.js
2007/01/10 Javascript
js对象数组按属性快速排序
2011/01/31 Javascript
对 jQuery 中 data 方法的误解分析
2014/06/18 Javascript
jQuery中ajax的load()方法用法实例
2014/12/26 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
jquery siblings获取同辈元素用法实例分析
2016/07/25 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
BootStrap实现文件上传并带有进度条效果
2017/09/11 Javascript
vue的安装及element组件的安装方法
2018/03/09 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
javascript将扁平的数据转为树形结构的高效率算法
2020/02/27 Javascript
openlayers4.6.5实现距离量测和面积量测
2020/09/25 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
详解Python程序与服务器连接的WSGI接口
2015/04/29 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Sanic框架安装与简单入门示例
2018/07/16 Python
Python解析、提取url关键字的实例详解
2018/12/17 Python
linux下安装python3和对应的pip环境教程详解
2019/07/01 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
2019/12/31 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
python里glob模块知识点总结
2021/01/05 Python
Python3爬虫RedisDump的安装步骤
2021/02/20 Python
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
Hotter Shoes美国官网:英国最受欢迎的舒适鞋
2018/08/02 全球购物
Troy-Bilt官网:草坪割草机、吹雪机、分蘖机等
2019/02/19 全球购物
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
入党自荐书范文
2014/03/09 职场文书
初中军训感想
2015/08/07 职场文书
小学作文之描写天气
2019/08/15 职场文书
golang语言指针操作
2022/04/14 Golang
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript