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 16 Javascript
原生js实现跨浏览器获取鼠标按键的值
Apr 08 Javascript
js获取电脑分辨率的思路及操作
Nov 22 Javascript
table insertRow、deleteRow定义和用法总结
May 14 Javascript
javascript动态获取登录时间和在线时长
Feb 25 Javascript
jQuery判断浏览器并动态调整select宽度的方法
Mar 02 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
Nov 10 Javascript
详解webpack性能优化——DLL
Oct 20 Javascript
Vue.js 表单控件操作小结
Mar 29 Javascript
理解 JavaScript EventEmitter
Mar 29 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
May 18 Javascript
JavaScript交换两个变量方法实例
Nov 25 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
攻克CakePHP系列三 表单数据增删改
2008/10/22 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
PHP的error_reporting错误级别变量对照表
2014/07/08 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
2014/08/25 PHP
PHP中static关键字以及与self关键字的区别
2015/07/01 PHP
理解php依赖注入和控制反转
2016/05/11 PHP
简单的自定义php模板引擎
2016/08/26 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
PHP延迟静态绑定使用方法实例解析
2020/09/05 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
List Installed Software Features
2007/06/11 Javascript
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
JavaScript代码里的判断小结
2016/08/22 Javascript
JS常用知识点整理
2017/01/21 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
详解Angular.js中$http拦截器的介绍及使用
2017/07/04 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
Angularjs实现页面模板清除的方法
2018/07/20 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
python实现DEM数据的阴影生成的方法
2019/07/23 Python
Python 实现顺序高斯消元法示例
2019/12/09 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
Python远程方法调用实现过程解析
2020/07/28 Python
css3实现一个div设置多张背景图片及background-image属性实例演示
2017/08/10 HTML / CSS
工厂车间标语
2014/06/19 职场文书
2014年安全生产工作总结
2014/11/13 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
工程部经理岗位职责
2015/02/02 职场文书
2015年维修电工工作总结
2015/04/25 职场文书
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python