详解数组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 相关文章推荐
JQuery文本框高亮显示插件代码
Apr 02 Javascript
js禁止小键盘输入数字功能代码
Aug 01 Javascript
JS随机漂浮广告代码具体实例
Nov 19 Javascript
浅析AngularJS中的生命周期和延迟处理
Jun 18 Javascript
JavaScript多线程详解
Aug 12 Javascript
jQuery实现非常实用漂亮的select下拉菜单选择效果
Nov 06 Javascript
微信小程序 实战实例开发流程详细介绍
Jan 05 Javascript
jQuery EasyUI Panel面板组件使用详解
Feb 28 Javascript
jQuery表单验证之密码确认
May 22 jQuery
vue一步步实现alert功能
Jul 05 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
Dec 05 Javascript
微信公众号生成新浪短网址的实现(快速生成)
Aug 18 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
ajax+php打造进度条 readyState各状态
2010/03/20 PHP
php 输出双引号&quot;与单引号'的方法
2010/05/09 PHP
PHP实现的简单网络硬盘
2015/07/29 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
javascript 按键事件(兼容各浏览器)
2013/12/20 Javascript
JavaScript人脸识别技术及脸部识别JavaScript类库Tracking.js
2015/09/14 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
用jquery快速解决IE输入框不能输入的问题
2016/10/04 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
jQuery实现日历效果
2020/09/11 jQuery
JS实现百度搜索框
2021/02/25 Javascript
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
python发送邮件实例分享
2017/07/28 Python
详解Python判定IP地址合法性的三种方法
2018/03/06 Python
使用python编写监听端
2018/04/12 Python
Python DataFrame 设置输出不显示index(索引)值的方法
2018/06/07 Python
python里dict变成list实例方法
2019/06/26 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
社区母亲节活动方案
2014/03/05 职场文书
人力资源主管的岗位职责
2014/03/15 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
县级文明单位申报材料
2014/05/23 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
2014年计生工作总结
2014/11/21 职场文书
2019商业计划书格式、范文
2019/04/24 职场文书