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版本的代码
Sep 03 Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
Mar 06 Javascript
jquery $.each() 使用小探
Aug 23 Javascript
JS实现黑客帝国文字下落效果
Sep 01 Javascript
jquery实现网页的页面平滑滚动效果代码
Nov 02 Javascript
简单的JS时钟实例讲解
Jan 13 Javascript
Vue.JS入门教程之处理表单
Dec 01 Javascript
vue 添加vux的代码讲解
Nov 30 Javascript
浅谈实现vue2.0响应式的基本思路
Feb 13 Javascript
JavaScript遍历数组的方法代码实例
Jan 14 Javascript
吃通javascript正则表达式
Apr 21 Javascript
浅谈JS的二进制家族
May 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导入Excel到MySQL的方法
2011/04/23 PHP
mysql总结之explain
2012/02/27 PHP
通过php快速统计某个数据库中每张表的数据量
2012/09/04 PHP
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
PHP中register_shutdown_function函数的基础介绍与用法详解
2017/11/28 PHP
JS解密入门 最终变量劫持
2008/06/25 Javascript
通用JS事件写法实现代码
2009/01/07 Javascript
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
jquery select下拉框操作的一些说明
2010/04/02 Javascript
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
彻底搞懂Python字符编码
2018/01/23 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
基于python实现高速视频传输程序
2019/05/05 Python
python绘制分布折线图的示例
2020/09/24 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
美国婴童服装市场上的领先品牌:Carter’s
2018/02/08 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
电气自动化大学生求职信
2013/10/16 职场文书
《孙权劝学》教学反思
2014/04/23 职场文书
上海世博会口号
2014/06/19 职场文书
业务员年终工作总结2015
2015/05/28 职场文书