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 基础知识 被自己遗忘的
Oct 15 Javascript
node.js中的fs.readlink方法使用说明
Dec 17 Javascript
用队列模拟jquery的动画算法实例
Jan 20 Javascript
JS实现简单的图书馆享元模式实例
Jun 30 Javascript
JavaScript+html5 canvas绘制的小人效果
Jan 27 Javascript
JS实现拖拽的方法分析
Dec 20 Javascript
JS模拟超市简易收银台小程序代码解析
Aug 18 Javascript
vue指令只能输入正数并且只能输入一个小数点的方法
Jun 08 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
Dec 05 Javascript
ES6数组与对象的解构赋值详解
Jun 14 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
Apr 01 Javascript
分享几个JavaScript运算符的使用技巧
Apr 24 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
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
php+layui数据表格实现数据分页渲染代码
2019/10/26 PHP
jQuery 图像裁剪插件Jcrop的简单使用
2009/05/22 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
纯javascript实现图片延时加载方法
2015/08/21 Javascript
js 将图片连接转换成base64格式的简单实例
2016/08/10 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
2016/12/31 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
2017/03/30 Javascript
vue-star评星组件开发实例
2018/03/01 Javascript
微信小程序支付前端源码
2018/08/29 Javascript
jquery分页优化操作实例分析
2019/08/23 jQuery
jQuery与原生JavaScript选择HTML元素集合用法对比分析
2019/11/26 jQuery
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
Python将图片转换为字符画的方法
2020/06/16 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
python利用ffmpeg进行录制屏幕的方法
2019/01/10 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
Pytorch 多块GPU的使用详解
2019/12/31 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
Pycharm Plugins加载失败问题解决方案
2020/11/28 Python
澳大利亚当地最大的时装生产商:Cue
2018/08/06 全球购物
英国网上购买肉类网站:Great British Meat
2018/10/17 全球购物
教师档案管理制度
2014/01/23 职场文书
庆七一活动方案
2014/01/25 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
物流专员岗位职责
2014/02/17 职场文书
解除合同协议书
2014/04/17 职场文书
仓库规划计划书
2014/04/28 职场文书
求职信标题怎么写
2014/05/26 职场文书
公证处委托书
2015/01/28 职场文书
大学生自荐信怎么写
2015/03/26 职场文书
消防安全月活动总结
2015/05/08 职场文书
军训决心书范文
2015/09/22 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书