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


Posted in Javascript onMarch 01, 2017

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 相关文章推荐
jQuery实现可拖动的浮动层完整代码
May 27 Javascript
JS设置cookie、读取cookie、删除cookie
Apr 17 Javascript
jquery 抽奖小程序实现代码
Oct 12 Javascript
在一般处理程序(ashx)中弹出js提示语
Aug 16 Javascript
详细分析jsonp的原理和实现方式
Nov 20 Javascript
浅谈vue引入css,less遇到的坑和解决方法
Jan 20 Javascript
关于redux-saga中take使用方法详解
Feb 27 Javascript
js实现敏感词过滤算法及实现逻辑
Jul 24 Javascript
微信小程序使用wxParse解析html的方法示例
Jan 17 Javascript
js作用域和作用域链及预解析
Apr 11 Javascript
vue样式穿透 ::v-deep的具体使用
Jun 04 Javascript
JavaScript 判断数据类型的4种方法
Sep 11 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
JavaScript拖动层Div代码
Mar 01 #Javascript
You might like
实现dedecms全站URL静态化改造的代码
2007/03/29 PHP
一个简单php扩展介绍与开发教程
2010/08/19 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
php检测url是否存在的方法
2015/04/14 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
2009/04/24 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
javascript 原型链维护和继承详解
2014/11/26 Javascript
js实现简单div拖拽功能实例
2015/05/12 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
JS的Ajax与后端交互数据的实例
2018/08/08 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
Vue插槽原理与用法详解
2019/03/05 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
python 从远程服务器下载东西的代码
2013/02/10 Python
利用Python破解斗地主残局详解
2017/06/30 Python
使用python实现接口的方法
2017/07/07 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
python pycharm的安装及其使用
2019/10/11 Python
PyQt5多线程刷新界面防假死示例
2019/12/13 Python
关于jupyter打开之后不能直接跳转到浏览器的解决方式
2020/04/13 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
2020/07/01 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
美国在线印刷公司:PsPrint
2017/10/12 全球购物
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
国企干部对照检查材料
2014/08/22 职场文书
努力工作保证书
2015/02/28 职场文书
道德与公民自我评价
2015/03/09 职场文书
2015学生会文艺部工作总结
2015/04/03 职场文书
人生一定要学会的三样东西:放下、忘记、珍惜
2019/08/21 职场文书