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 相关文章推荐
js和jquery批量绑定事件传参数一(新猪猪原创)
Jun 23 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
Dec 12 Javascript
直接在JS里创建JSON数据然后遍历使用
Jul 25 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
Jul 08 Javascript
实现非常简单的js双向数据绑定
Nov 06 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
Dec 26 Javascript
js实现弹窗暗层效果
Jan 16 Javascript
vue拦截器Vue.http.interceptors.push使用详解
Apr 22 Javascript
Vue组件中prop属性使用说明实例代码详解
May 31 Javascript
video.js 实现视频只能后退不能快进的思路详解
Aug 09 Javascript
this.$toast() 了解一下?
Apr 18 Javascript
javascript 数组(list)添加/删除的实现
Dec 17 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
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
php加水印的代码(支持半透明透明打水印,支持png透明背景)
2013/01/17 PHP
解析Extjs与php数据交互(增删查改)
2013/06/25 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
PHP随机生成唯一HASH值自定义函数
2015/04/20 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
在b/s开发中经常用到的javaScript技术
2006/08/23 Javascript
异步加载script的代码
2011/01/12 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
2015/11/04 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
javascript 作用于作用域链的详解
2017/09/27 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
Vue实现手机号、验证码登录(60s禁用倒计时)
2020/12/19 Vue.js
跟老齐学Python之关于类的初步认识
2014/10/11 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
python使用Tesseract库识别验证
2018/03/21 Python
python 自动去除空行的实例
2018/07/24 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
Python列表对象实现原理详解
2019/07/01 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
纪念九一八事变演讲稿:勿忘国耻
2014/09/14 职场文书
24句精辟的现实社会语录,句句扎心,道尽人性
2019/08/29 职场文书
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers
mysql序号rownum行号实现方式
2022/12/24 MySQL