详解数组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 相关文章推荐
javascript+xml技术实现分页浏览
Jul 27 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
Dec 09 Javascript
jquery 学习之二 属性(类)
Nov 25 Javascript
多种方式实现JS调用后台方法进行数据交互
Aug 20 Javascript
JavaScript如何获取数组最大值和最小值
Nov 18 Javascript
IE8 内存泄露(内存一直增长 )的原因及解决办法
Apr 06 Javascript
通过命令行创建vue项目的方法
Jul 20 Javascript
[js高手之路]单例模式实现模态框的示例
Sep 01 Javascript
微信小程序云开发如何实现数据库自动备份实现
Aug 16 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
Sep 02 Javascript
javascript实现拖拽碰撞检测
Mar 12 Javascript
JavaScript禁止右击保存图片,禁止拖拽图片的实现代码
Apr 28 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
建立文件交换功能的脚本(一)
2006/10/09 PHP
PHP中的str_repeat函数在JavaScript中的实现
2013/09/16 PHP
thinkphp中ajax与php响应过程详解
2014/12/08 PHP
隐藏Nginx或Apache以及PHP的版本号的方法
2016/01/03 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
PHP查询分页的实现代码
2017/06/09 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
设定php简写功能的方法
2019/11/28 PHP
js常用代码段整理
2011/11/30 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
js canvas实现简单的图像扩散效果
2020/06/28 Javascript
Vue header组件开发详解
2018/01/26 Javascript
node.js实现简单的压缩/解压缩功能示例
2019/11/05 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
python fabric使用笔记
2015/05/09 Python
多版本Python共存的配置方法
2017/05/22 Python
Python打印输出数组中全部元素
2018/03/13 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
使用python tkinter开发一个爬取B站直播弹幕工具的实现代码
2021/02/07 Python
用html5的canvas和JavaScript创建一个绘图程序的简单实例
2016/07/06 HTML / CSS
戴尔英国翻新电脑和电子产品:Dell UK Refurbished Computers
2019/07/30 全球购物
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
公司周年庆典邀请函
2014/01/12 职场文书
网上快餐厅创业计划书
2014/02/01 职场文书
学校青年志愿者活动总结
2015/05/06 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
Python 阶乘详解
2021/10/05 Python
Python中的 Set 与 dict
2022/03/13 Python