详解数组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 相关文章推荐
table行随鼠标移动变色示例
May 07 Javascript
js实现简单的左右两边固定广告效果实例
Apr 10 Javascript
js实现类似MSN提示的页面效果代码分享
Aug 24 Javascript
JS截取与分割字符串常用技巧总结
Nov 10 Javascript
javascript数组去重小结
Mar 07 Javascript
jquery购物车结算功能实现方法
Oct 29 Javascript
jquery PrintArea 实现票据的套打功能(代码)
Mar 17 Javascript
jQuery获取table表中的td标签(实例讲解)
Jul 28 jQuery
ES6扩展运算符用法实例分析
Oct 31 Javascript
vue 组件 全局注册和局部注册的实现
Feb 28 Javascript
Node批量爬取头条视频并保存方法
Sep 20 Javascript
JS实现普通轮播图特效
Jan 01 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
PHP 翻页 实例代码
2009/08/07 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
分享php多功能图片处理类
2016/05/15 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
javascript 面向对象全新理练之原型继承
2009/12/03 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
2012/03/05 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
[03:24]DOTA2超级联赛专访hao 大翻盘就是逆袭
2013/05/24 DOTA
Python实现端口复用实例代码
2014/07/03 Python
Python 多线程实例详解
2017/03/25 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
python发送邮件脚本
2018/05/22 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
网上常见的一份Linux面试题(多项选择部分)
2015/02/07 面试题
MIS软件工程师的面试题
2016/04/22 面试题
工程造价自荐信
2013/10/09 职场文书
听课评语大全
2014/04/30 职场文书
消防志愿者活动方案
2014/08/23 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
销售代理协议书
2014/09/30 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
工作态度检讨书范文
2015/05/06 职场文书
七年级话题作文之执着
2019/11/19 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书
Python极值整数的边界探讨分析
2021/09/15 Python
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电