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 相关文章推荐
JQuery 常用操作代码
Mar 14 Javascript
Microsfot .NET Framework4.0框架 安装失败的解决方法
Aug 14 Javascript
js左侧三级菜单导航实例代码
Sep 13 Javascript
javascript获取当前的时间戳的方法汇总
Jul 26 Javascript
详解Javacript和AngularJS中的Promises
Feb 09 Javascript
深入理解MVC中的时间js格式化
May 19 Javascript
Bootstrap表格和栅格分页实例详解
May 20 Javascript
浅谈jQuery 选择器和dom操作
Jun 07 Javascript
js querySelector() 使用方法
Dec 21 Javascript
小程序云开发初探(小结)
Oct 24 Javascript
JS数组的高级使用方法示例小结
Mar 14 Javascript
JavaScript代码模拟鼠标自动点击事件示例
Aug 07 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
javascript,php获取函数参数对象的代码
2011/02/03 PHP
php使用反射插入对象示例分享
2014/03/11 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
php中的依赖注入实例详解
2019/08/14 PHP
js控制div及网页相关属性的代码
2009/12/19 Javascript
JavaScript打字小游戏代码
2011/12/26 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
js中arguments的用法(实例讲解)
2013/11/30 Javascript
深入理解JavaScript系列(34):设计模式之命令模式详解
2015/03/03 Javascript
jquery中JSON的解析方式
2015/03/16 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
图解js图片轮播效果
2015/12/20 Javascript
基于jQuery实现滚动刷新效果
2017/01/09 Javascript
五步轻松实现JavaScript HTML时钟效果
2020/03/25 Javascript
Node.js爬取豆瓣数据实例分析
2018/03/05 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
JavaScript闭包原理与用法实例分析
2018/08/10 Javascript
Vue中保存数据到磁盘文件的方法
2018/09/06 Javascript
el-select 下拉框多选实现全选的实现
2019/08/02 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
vue a标签点击实现赋值方式
2020/09/07 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
Python实现telnet服务器的方法
2015/07/10 Python
Python中字符串的常见操作技巧总结
2016/07/28 Python
儿童编程python入门
2018/05/08 Python
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
Java程序员面试90题
2013/10/19 面试题
甜品蛋糕店创业计划书
2014/09/21 职场文书
银行客户经理培训心得体会
2016/01/09 职场文书
小米11和iphone12哪个值得买?小米11对比iphone12评测
2021/04/21 数码科技
python函数的两种嵌套方法使用
2022/04/02 Python
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers