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 相关文章推荐
用jscript实现新建和保存一个word文档
Jun 15 Javascript
关于document.cookie的使用javascript
Apr 11 Javascript
初学JavaScript第二章
Sep 30 Javascript
jQuery入门知识简介
Mar 04 Javascript
Extjs TimeField 显示正常时间格式的代码
Jun 28 Javascript
浅析js中取绝对值的2种方法
Jul 09 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
Nov 26 Javascript
js实现checkbox全选和反选示例
May 01 Javascript
jQuery跨域问题解决方案
Aug 03 Javascript
jQuery的Read()方法代替原生JS详解
Nov 08 Javascript
vue环境搭建简单教程
Nov 07 Javascript
为vue项目自动设置请求状态的配置方法
Jun 09 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批量去除BOM头代码分享
2015/06/26 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
浅析document.ready和window.onload的区别讲解
2013/12/18 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
javascript汉字拼音互转的简单实例
2016/10/09 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
关于定制FileField中的上传文件名称问题
2017/08/22 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
vue中 v-for循环的用法详解
2020/02/19 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
javascript实现评分功能
2020/06/24 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
python中pass语句用法实例分析
2015/04/30 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
python得到单词模式的示例
2018/10/15 Python
Python库安装速度过慢解决方案
2020/07/14 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
css3学习之2D转换功能详解
2016/12/23 HTML / CSS
会计电算化学生个人的自我评价
2014/02/08 职场文书
机关党建工作汇报材料
2014/08/20 职场文书
爱护公共设施倡议书
2014/08/29 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
赢在执行观后感
2015/06/16 职场文书
HTML页面中使两个div并排显示的实现
2022/05/15 HTML / CSS