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 相关文章推荐
javascript继承机制实例详解
Nov 20 Javascript
JavaScript获得url查询参数的方法
Jul 02 Javascript
jQuery实现textarea自动增长宽高的方法
Dec 18 Javascript
BootStrap中Tab页签切换实例代码
May 30 Javascript
AngularJS 模块详解及简单实例
Jul 28 Javascript
vue中简单弹框dialog的实现方法
Feb 26 Javascript
浅谈Vue组件及组件的注册方法
Aug 24 Javascript
小程序点赞收藏功能的实现代码示例
Sep 07 Javascript
Vue刷新修改页面中数据的方法
Sep 16 Javascript
webpack-url-loader 解决项目中图片打包路径问题
Feb 15 Javascript
vue 解决遍历对象显示的顺序不对问题
Nov 07 Javascript
代码解析React中setState同步和异步问题
Jun 03 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
PHP函数utf8转gb2312编码
2006/12/21 PHP
php学习之流程控制实现代码
2011/06/09 PHP
CodeIgniter基于Email类发邮件的方法
2016/03/29 PHP
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
15个jquery常用方法、小技巧分享
2015/01/13 Javascript
编写自己的jQuery提示框(Tip)插件
2015/02/05 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
2016/03/30 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
vue2.0 自定义日期时间过滤器
2017/06/07 Javascript
react-router v4如何使用history控制路由跳转详解
2018/01/09 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
使用Nuxt.js改造已有项目的方法
2018/08/07 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
jqGrid表格底部汇总、合计行footerrow处理
2019/08/21 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
Python+django实现文件上传
2016/01/17 Python
有趣的python小程序分享
2017/12/05 Python
TensorFlow实现随机训练和批量训练的方法
2018/04/28 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
简单了解django索引的相关知识
2019/07/17 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
数控技术与应用毕业生自荐信
2013/09/24 职场文书
岳庙导游词
2015/02/04 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python
C#连接ORACLE出现乱码问题的解决方法
2021/10/05 Oracle
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python