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 相关文章推荐
使用JS取得焦点(focus)元素代码
Mar 22 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
Aug 01 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
Sep 28 Javascript
深入理解基于vue-cli的vuex配置
Jul 24 Javascript
vue-cli的eslint相关用法
Sep 29 Javascript
Vue.js搭建移动端购物车界面
Jun 28 Javascript
JavaScript图片处理与合成总结
Mar 04 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
Mar 26 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
Apr 26 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
Sep 03 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
May 16 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
Jan 22 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 加密解密内部算法
2010/04/22 PHP
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
php比较两个字符串长度的方法
2015/07/13 PHP
PHP实现获取并生成数据库字典的方法
2016/05/04 PHP
详解EventDispatcher事件分发组件
2016/12/25 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
js切换div css注意的细节
2012/12/10 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
基于AngularJS实现的工资计算器实例
2017/06/16 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
Vue登录拦截 登录后继续跳转指定页面的操作
2020/08/04 Javascript
python模拟enum枚举类型的方法小结
2015/04/30 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
Python3直接爬取图片URL并保存示例
2019/12/18 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
pytorch 常用函数 max ,eq说明
2020/06/28 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
俄罗斯最大的在线手表商店:Bestwatch.ru
2020/01/11 全球购物
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
团支书竞选演讲稿
2014/04/28 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
校园运动会广播稿
2015/08/19 职场文书
学生会干部任命书
2015/09/21 职场文书
个人工作总结怎么写?
2019/04/09 职场文书
GPU服务器的多用户配置方法
2022/07/07 Servers