JavaScript自定义数组排序方法


Posted in Javascript onFebruary 12, 2015

本文实例讲述了JavaScript自定义数组排序方法。分享给大家供大家参考。具体分析如下:

Array中有自带的排序功能,这个使用起来比较方便,我们有一点必须清楚,就是排序的依据,如果sort不传入参数的话,那就是按照字符编码(Unicode编码)的顺序排序。

var a=["3","2","1"]; 
console.log(a[0].charCodeAt(0)); // 51 
console.log(a[1].charCodeAt(0)); // 50 
console.log(a[2].charCodeAt(0)); // 49 
console.log(a.sort());      // ["1", "2", "3"] 
 
var a=["3","你","他"]; 
console.log(a[0].charCodeAt(0)); // 51 
console.log(a[1].charCodeAt(0)); // 20320 
console.log(a[2].charCodeAt(0)); // 20182 
console.log(a.sort());      // ["3", "他", "你"] 
 
var a=["3","11","222"]; 
console.log(a.sort());// ["11", "222", "3"]  
           // 多个字符的时候按照第一个字符的编码

不过我觉得sort最好用的地方在于可以自定义排序,这个在实际运用中也比较常见,比如要对对象数组排序。例如线面的一个对象数组,要根据其中的某一个字段进行排序,当然自己也可以写个函数来完成,不过我想没有sort来得方便。

var list = [ 
  { 
    max:3, 
    avg:2, 
    min:1 
  }, 
  { 
    max:10, 
    avg:15, 
    min:20 
  }, 
  { 
    max:8, 
    avg:5, 
    min:2 
  } 
]; 
// 根据max字段对list对象进行排序,从小到大的顺序 
// x,y就是要比较的数组的单个元素,这里就是list中的一个元素 
// 排序方法主要是要提供一个比较大小的规则,换句话说也就是要说明谁大谁小 
// 返回值为true or false 
function sortByField(x, y) { 
  return x.max - y.max; 
} 
console.log(list.sort(sortByField));

运行效果如下图所示:

JavaScript自定义数组排序方法

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript 事件查询综合
Jul 13 Javascript
JavaScript 设计模式学习 Singleton
Jul 27 Javascript
jquery判断浏览器类型的代码
Nov 05 Javascript
JavaScript对IE操作的经典代码(推荐)
Mar 10 Javascript
javascript实现下拉提示选择框
Dec 29 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
Jun 12 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
Nov 25 Javascript
JavaScript学习笔记--常用的互动方法
Dec 07 Javascript
js 判断登录界面的账号密码是否为空
Feb 08 Javascript
浅谈angular2 组件的生命周期钩子
Aug 12 Javascript
微信小程序之多文件下载的简单封装示例
Jan 29 Javascript
微信小程序获取当前时间及星期几的实例代码
Sep 20 Javascript
zepto.js中tap事件阻止冒泡的实现方法
Feb 12 #Javascript
后台获取ZTREE选中节点的方法
Feb 12 #Javascript
在父页面得到zTree已选中的节点的方法
Feb 12 #Javascript
ztree获取当前选中节点子节点id集合的方法
Feb 12 #Javascript
javascript编写实用的省市选择器
Feb 12 #Javascript
jQuery遍历json中多个map的方法
Feb 12 #Javascript
javascript中call,apply,bind的用法对比分析
Feb 12 #Javascript
You might like
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
PHP设计模式(九)外观模式Facade实例详解【结构型】
2020/05/02 PHP
js活用事件触发对象动作
2008/08/10 Javascript
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
BOM与DOM的区别分析
2010/10/26 Javascript
jquery异步调用页面后台方法‏(asp.net)
2011/03/01 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
angular ngClick阻止冒泡使用默认行为的方法
2016/11/03 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
关于angularJs清除浏览器缓存的方法
2017/11/28 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
2019/09/16 Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
2020/04/16 Javascript
Python 调用DLL操作抄表机
2009/01/12 Python
python查找指定具有相同内容文件的方法
2015/06/28 Python
Python算法之图的遍历
2017/11/16 Python
python距离测量的方法
2018/03/06 Python
用Python下载一个网页保存为本地的HTML文件实例
2018/05/21 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
Python爬虫——爬取豆瓣电影Top250代码实例
2019/04/17 Python
python psutil监控进程实例
2019/12/17 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
python实现xml转json文件的示例代码
2020/12/30 Python
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
Linux上比较文件的命令都有哪些
2012/02/24 面试题
售后主管岗位职责
2013/12/08 职场文书
函授毕业自我鉴定
2014/02/04 职场文书
精神文明建设标语
2014/06/16 职场文书
买房子个人收入证明
2014/10/12 职场文书
金砖之国观后感
2015/06/11 职场文书
大学生实习证明
2015/06/16 职场文书
2015新教师教学工作总结
2015/07/22 职场文书