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 相关文章推荐
图片自动更新(说明)
Oct 02 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
Jun 14 Javascript
js克隆对象、数组的常用方法介绍
Sep 26 Javascript
jQuery 仿百度输入标签插件附效果图
Jul 04 Javascript
谷歌地图打不开的解决办法
Aug 07 Javascript
使用AngularJS创建自定义的过滤器的方法
Jun 18 Javascript
Vue 进阶教程之v-model详解
May 06 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
Nov 30 Javascript
vue2使用keep-alive缓存多层列表页的方法
Sep 21 Javascript
JS实现网页端猜数字小游戏
Mar 06 Javascript
JavaScript实现页面高亮操作提示和蒙板
Jan 04 Javascript
插件导致ECharts被全量引入的坑示例解析
Sep 23 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中加密解密函数与DES加密解密实例
2014/10/17 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
完美解决Thinkphp3.2中插入相同数据的问题
2017/08/01 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
JS中typeof与instanceof之间的区别总结
2013/11/14 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
微信小程序request请求封装,验签代码实例
2019/12/04 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
[31:55]完美世界DOTA2联赛循环赛 IO vs GXR BO2第一场 11.04
2020/11/05 DOTA
python使用wmi模块获取windows下硬盘信息的方法
2015/05/15 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
Python模拟用户登录验证
2017/09/11 Python
windows下python 3.6.4安装配置图文教程
2018/08/21 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
django教程如何自学
2020/07/31 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
BNKR中国官网:带你感受澳洲领先潮流时尚
2018/08/21 全球购物
餐饮主管岗位职责
2013/12/10 职场文书
毕业生自荐书
2014/02/02 职场文书
军神教学反思
2014/02/04 职场文书
秸秆管理实施方案
2014/03/15 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
老人与海读书笔记
2015/06/26 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript