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 相关文章推荐
又一个图片自动缩小的JS代码
Mar 10 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
Jul 04 Javascript
js展开闭合效果演示代码
Jul 24 Javascript
使用非html5实现js板连连看游戏示例代码
Sep 22 Javascript
悬浮数字的实现案例
Feb 19 Javascript
Jquery 1.9.1源码分析系列(十二)之筛选操作
Dec 02 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
Dec 03 Javascript
微信小程序 本地数据存储实例详解
Apr 13 Javascript
JS面向对象的程序设计相关知识小结
May 26 Javascript
微信小程序class封装http代码实例
Aug 24 Javascript
jquery检测上传文件大小示例
Apr 26 jQuery
js实现全选和全不选
Jul 28 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
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
php之可变函数的实例详解
2017/09/13 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
jquery 实现的全选和反选
2009/04/15 Javascript
JQuery入门——事件切换之toggle()方法应用介绍
2013/02/05 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
如何编写高质量JS代码
2014/12/28 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
jQuery轮播图效果精简版完整示例
2016/09/04 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
Vue.js组件间的循环引用方法示例
2017/12/27 Javascript
Javascript将图片的绝对路径转换为base64编码的方法
2018/01/11 Javascript
微信小程序App生命周期详解
2018/01/31 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
Angular2实现的秒表及改良版示例
2019/05/10 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
Python构建XML树结构的方法示例
2017/06/30 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
python找出完数的方法
2018/11/12 Python
python3的url编码和解码,自定义gbk、utf-8的例子
2019/08/22 Python
使用Pandas将inf, nan转化成特定的值
2019/12/19 Python
python中count函数简单用法
2020/01/05 Python
pytorch 状态字典:state_dict使用详解
2020/01/17 Python
python利用platform模块获取系统信息
2020/10/09 Python
使用HTML5加载音频和视频的实现代码
2020/11/30 HTML / CSS
俄罗斯和世界各地的酒店预订:Hotels.com俄罗斯
2016/08/19 全球购物
error和exception有什么区别
2012/10/02 面试题
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
秘书行业自我鉴定范文
2013/12/30 职场文书
消防安全检查制度
2014/02/04 职场文书
因工资原因离职的辞职信范文
2015/05/12 职场文书
小学班主任研修日志
2015/11/13 职场文书