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 相关文章推荐
兼容IE、FireFox、Chrome等浏览器的xml处理函数js代码
Nov 30 Javascript
浅谈 jQuery 事件源码定位问题
Jun 18 Javascript
JavaScript的removeChild()函数用法详解
Dec 27 Javascript
悬浮广告方法日常收集整理
Mar 18 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
Apr 01 Javascript
jquery mobile界面数据刷新的实现方法
May 28 Javascript
使用jquery给新生的th绑定hover事件的实例
Feb 10 Javascript
微信小程序实战之自定义抽屉菜单(7)
Apr 18 Javascript
JQuery实现定时刷新功能代码
May 09 jQuery
Node.js学习教程之HTTP/2服务器推送【译】
Oct 31 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
Sep 04 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
Nov 19 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 模板高级篇总结
2006/12/21 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
javascript中如何处理引号编码"
2013/08/15 Javascript
append和appendTo的区别以及appendChild用法
2013/12/24 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
2014/01/31 Javascript
js截取中英文字符串、标点符号无乱码示例解读
2014/04/17 Javascript
JavaScript插件化开发教程(五)
2015/02/01 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
js实现获取div坐标的方法
2015/11/16 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
关于使用axios的一些心得技巧分享
2017/07/02 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
Vue下路由History模式打包后页面空白的解决方法
2018/06/29 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
通过vue.extend实现消息提示弹框的方法记录
2021/01/07 Vue.js
用Python中的字典来处理索引统计的方法
2015/05/05 Python
浅析使用Python操作文件
2017/07/31 Python
Python爬虫天气预报实例详解(小白入门)
2018/01/24 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
Python连接mysql数据库及简单增删改查操作示例代码
2020/08/03 Python
Python 发送邮件方法总结
2020/08/10 Python
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
信访工作者先进事迹
2014/01/17 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
先进集体事迹材料范文
2014/12/25 职场文书
老人院义工活动感想
2015/08/07 职场文书
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL
使用Python拟合函数曲线
2022/04/14 Python
vscode内网访问服务器的方法
2022/06/28 Servers