详解数组Array.sort()排序的方法


Posted in Javascript onMay 09, 2020

数组sort排序

sort比较次数,sort用法,sort常用

描述

方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的元素进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如果有必要的话),以便进行比较。

如果想按照别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下:

如果根据你的评判标准,a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的值。

如果a等于b,就返回0。

如果a大于b,就返回一个大于0的值。

注意,数组中undefined的元素都排列在数组末尾。即使你提供了自定义的排序函数也是这样,因为undefined值不会被传递给你提供的orderfunc。

JavaScript中数组的sort()方法主要用于对数组的元素进行排序。其中,sort()方法有一个可选参数。但是,此参数必须是函数。 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编码顺序)对数组中的元素进行排序,如果想按照其他标准进行排序,就需要进行传一个参数且为函数,该函数要比较两个值,并且会返回一个用于说明这两个值的相对顺序的数字。

1、对数字数组进行由小到大的顺序进行排序。

代码:

var arr = [22,12,3,43,56,47,4];
arr.sort();
console.log(arr); // [12, 22, 3, 4, 43, 47, 56]
arr.sort(function (m, n) {
 if (m < n) return -1
 else if (m > n) return 1
 else return 0
});
console.log(arr); // [3, 4, 12, 22, 43, 47, 56]

2、对字符串数组执行不区分大小写的字母表排序。

代码:

var arr = ['abc', 'Def', 'BoC', 'FED'];
console.log(arr.sort()); // ["BoC", "Def", "FED", "abc"]
console.log(arr.sort(function(s, t){
 var a = s.toLowerCase();
 var b = t.toLowerCase();
 if (a < b) return -1;
 if (a > b) return 1;
 return 0;
})); // ["abc", "BoC", "Def", "FED"]

3、对包含对象的数组排序,要求根据对象中的年龄进行由大到小的顺序排列

代码:

var arr = [{'name': '张三', age: 26},{'name': '李四', age: 12},{'name': '王五', age: 37},{'name': '赵六', age: 4}];
var objectArraySort = function (keyName) {
 return function (objectN, objectM) {
 var valueN = objectN[keyName]
 var valueM = objectM[keyName]
 if (valueN < valueM) return 1
 else if (valueN > valueM) return -1
 else return 0
 }
}
arr.sort(objectArraySort('age'))
console.log(arr) // [{'name': '王五', age: 37},{'name': '张三', age: 26},{'name': '李四', age: 12},{'name': '赵六', age: 4}]

以上所述是小编给大家介绍的JavaScript中数组Array.sort()排序方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JTrackBar水平拖动效果
Jul 15 Javascript
jQuery :nth-child前有无空格的区别分析
Jul 11 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
Jun 26 Javascript
JavaScript操作cookie类实例
Mar 31 Javascript
javascript原型模式用法实例详解
Jun 04 Javascript
在vue中获取dom元素内容的方法
Jul 10 Javascript
javascript兼容性(实例讲解)
Aug 15 Javascript
微信小程序 配置顶部导航条标题颜色的实现方法
Sep 20 Javascript
JavaScript实现重力下落与弹性效果的方法分析
Dec 20 Javascript
收集前端面试题之url、href、src
Mar 22 Javascript
Vue.js实现tab切换效果
Jul 24 Javascript
Vue如何提升首屏加载速度实例解析
Jun 25 Javascript
JavaScript中数组Array.sort()排序方法详解
Mar 01 #Javascript
javascript中replace使用方法总结
Mar 01 #Javascript
jQuery validate 验证radio实例
Mar 01 #Javascript
提高JavaScript执行效率的23个实用技巧
Mar 01 #Javascript
使用jQuery的load方法设计动态加载及解决被加载页面js失效问题
Mar 01 #Javascript
分分钟玩转Vue.js组件(二)
Mar 01 #Javascript
js实现带三角符的手风琴效果
Mar 01 #Javascript
You might like
浅析THINKPHP的addAll支持的最大数据量
2015/02/03 PHP
php实现贪吃蛇小游戏
2016/07/26 PHP
thinkPHP框架自动填充原理与用法分析
2018/04/03 PHP
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
工作需要写的一个js拖拽组件
2011/07/28 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
js图片闪动特效可以控制间隔时间如几分钟闪动一下
2014/08/12 Javascript
Internet Explorer 11 浏览器介绍:别叫我IE
2014/09/28 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
python中list列表的高级函数
2016/05/17 Python
python 循环遍历字典元素的简单方法
2016/09/11 Python
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
2020/07/14 Python
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
大一学生假期实习的自我评价
2013/10/12 职场文书
护士演讲稿范文
2014/01/05 职场文书
公务员保密承诺书
2014/03/27 职场文书
事业单位鉴定材料
2014/05/25 职场文书
学校创先争优活动总结
2014/08/28 职场文书
2014年作风建设心得体会
2014/10/22 职场文书
员工表扬信怎么写
2015/05/05 职场文书
房屋所有权证明
2015/06/19 职场文书
python tkinter实现定时关机
2021/04/21 Python
Nginx速查手册及常见问题
2022/04/07 Servers