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 相关文章推荐
jquery 表单进行客户端验证demo
Aug 24 Javascript
javascript onmouseout 解决办法
Jul 17 Javascript
JS合并数组的几种方法及优劣比较
Sep 19 Javascript
JS实现跟随鼠标立体翻转图片的方法
May 04 Javascript
浅析JavaScript中的事件机制
Jun 04 Javascript
javascript数组去重小结
Mar 07 Javascript
jsonp跨域请求详解
Jul 13 Javascript
JS实现带动画的回到顶部效果
Dec 28 Javascript
Element ui 下拉多选时新增一个选择所有的选项
Aug 21 Javascript
vue学习笔记之slot插槽用法实例分析
Feb 29 Javascript
vue实现学生信息管理系统
May 30 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
Sep 21 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 解决session死锁的方法
2013/06/20 PHP
php把session写入数据库示例
2014/02/26 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
2014/06/23 PHP
PHP与MYSQL中UTF8 中文排序示例代码
2014/10/23 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
IE下支持文本框和密码框placeholder效果的JQuery插件分享
2015/01/31 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
轻松实现jquery选项卡切换效果
2016/10/10 Javascript
IntersectionObserver API 详解篇
2016/12/11 Javascript
详解照片瀑布流效果(js,jquery分别实现与知识点总结)
2017/01/01 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
2019/09/05 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
[02:19]2014DOTA2国际邀请赛 专访820少年们一起去追梦吧
2014/07/14 DOTA
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
Django如何将URL映射到视图
2019/07/29 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
2020/01/09 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
Python运行异常管理解决方案
2020/03/09 Python
python3排序的实例方法
2020/10/20 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
2021/02/16 Python
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
教师自荐书
2013/10/08 职场文书
军训自我鉴定
2013/12/14 职场文书
临床护理求职信
2014/04/26 职场文书
物流管理专业自荐信
2014/06/23 职场文书
联谊活动总结
2014/08/28 职场文书
人事任命通知
2015/04/20 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
Spring Data JPA框架的核心概念和Repository接口
2022/04/28 Java/Android