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弹出层插件简化版代码下载
Oct 16 Javascript
js单向链表的具体实现实例
Jun 21 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
May 10 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
Sep 09 Javascript
Bootstrap企业网站实战项目4
Oct 14 Javascript
AngularJS实现与Java Web服务器交互操作示例【附demo源码下载】
Nov 02 Javascript
JS实现复制功能
Mar 01 Javascript
BootStrap 动态表单效果
Jun 02 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
Mar 20 Javascript
layui table动态表头 改变表格头部 重新加载表格的方法
Sep 21 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
Sep 21 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
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
菜鸟修复电子管记
2021/03/02 无线电
ThinkPHP实现跨模块调用操作方法概述
2014/06/20 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
javascript removeChild 使用注意事项
2009/04/11 Javascript
把input初始值不写value的具体实现方法
2013/07/04 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
JQuery判断正整数整理小结
2017/08/21 jQuery
薪资那么高的Web前端必看书单
2017/10/13 Javascript
jquery.picsign图片标注组件实例详解
2018/02/02 jQuery
解决vue-cli创建项目的loader问题
2018/03/13 Javascript
JS左右无缝轮播功能完整实例
2019/05/16 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
sqlalchemy对象转dict的示例
2014/04/22 Python
Python微信公众号开发平台
2018/01/25 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
用Python实现数据的透视表的方法
2018/11/16 Python
python爬虫获取小区经纬度以及结构化地址
2018/12/30 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
2019/05/30 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
对python中 math模块下 atan 和 atan2的区别详解
2020/01/17 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
Java爬虫技术框架之Heritrix框架详解
2020/07/22 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
便携式太阳能系统的创新者:GOAL ZERO
2018/02/04 全球购物
软件工程毕业生自荐信
2014/07/04 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
党建工作整改措施
2014/10/28 职场文书
2014年小学教师工作总结
2014/11/10 职场文书
烟台的海导游词
2015/02/02 职场文书
2015年助理工程师工作总结
2015/04/03 职场文书