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 相关文章推荐
5款Javascript颜色选择器
Oct 25 Javascript
js apply/call/caller/callee/bind使用方法与区别分析
Oct 28 Javascript
JavaScript中setFullYear()方法的使用详解
Jun 11 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
Mar 23 jQuery
深入浅出理解JavaScript高级定时器原理与用法
Aug 02 Javascript
JS实现倒计时图文效果
Nov 17 Javascript
详解ES6系列之私有变量的实现
Nov 21 Javascript
vue项目前端埋点的实现
Mar 06 Javascript
JavaScript中关于base64的一些事
May 06 Javascript
京东优选小程序的实现代码示例
Feb 25 Javascript
vue.js实现照片放大功能
Jun 23 Javascript
解决vue-photo-preview 异步图片放大失效的问题
Jul 29 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
require(),include(),require_once()和include_once()区别
2008/03/27 PHP
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
PHP注释语法规范与命名规范详解篇
2018/01/21 PHP
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
js利用与或运算符优先级实现if else条件判断表达式
2010/04/15 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
js倒计时小程序
2013/11/05 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
javascript关于继承的用法汇总
2014/12/20 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
JS动态修改iframe高度和宽度的方法
2015/04/01 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
jQuery层次选择器用法示例
2016/09/09 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
webpack构建react多页面应用详解
2017/09/15 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
解决layui中的form表单与button的点击事件冲突问题
2018/08/15 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
用python实现面向对像的ASP程序实例
2014/11/10 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
python 实现简单的FTP程序
2019/12/27 Python
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
院药学专业个人求职信
2013/09/21 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
公司感谢信范文
2015/01/22 职场文书
小学数学教学随笔
2015/08/14 职场文书
MySQL pt-slave-restart工具的使用简介
2021/04/07 MySQL
浅谈MySQL之select优化方案
2021/08/07 MySQL
MySQL 数据表操作
2022/05/04 MySQL