function compare(name, minor) {
return function (o, p) {
var a, b;
if (o && p && typeof o === 'object' && typeof p === 'object') {
a = o[name];
b = p[name];
if (a === b) {
return typeof minor === 'function' ? minor(o, p) : 0;
}
if (typeof a === typeof b) {
return a < b ? -1 : 1;
}
return typeof a < typeof b ? -1 : 1;
} else {
thro("error");
}
}
}

使用方法

//测试数据
data: [{
name: '李寻欢',
age: 32,
rank: 1
},
{
name: '谢晓峰',
age: 28,
rank: 4
},
{
name: '潇十一郎',
age: 27,
rank: 5
},
{
name: '楚留香',
age: 29,
rank: 3
},
{
name: '傅红雪',
age: 35,
rank: 2
}
]
//先根据rank排序,再根据age排序,最后根据name排序
data.sort(compare('rank', compare('age', compare('name'))));

  

最新文章

  1. SQL Tuning 基础概述07 - SQL Joins
  2. 报错注入分析之updatexml注入
  3. JSFiddle
  4. js 漩涡
  5. js windows对象
  6. Java jar命令 常见用法
  7. XStream解析
  8. nginx+php与apache+php性能对比
  9. ylb:SQL Server中的时间函数
  10. Android Handler 避免内存泄漏的用法总结
  11. 关于win10安装VisualSVN遇到的一个问题及解决办法
  12. visual assist常用快捷键
  13. Python初学——多进程Multiprocessing
  14. ASP.NET Core 2.0使用Cookie认证实现SSO单点登录
  15. 【Unity3D】Unity3D开发《我的世界》之六、创建地形(视频 + 源码)
  16. Scrapy框架-Item Pipeline
  17. Linux下自动清理超过指定大小文件的方法
  18. zookeeper 详解
  19. 8-lvs-负载均衡
  20. mac下Android Studio使用及快捷键

热门文章

  1. zabbix 监控 AWS-SQS 队列
  2. 如何修改织梦官方flash幻灯片的方法
  3. 监听过多,会抛tooManyListener例外
  4. 【noip模拟题】挖掘机(模拟题+精度)
  5. hdu 2717:Catch That Cow(bfs广搜,经典题,一维数组搜索)
  6. mac os x 记录 转载
  7. Oracle sqlldr命令
  8. Struts2 取消 下载时异常
  9. 将工程导入到SVN仓库
  10. 170425、centos安装mysql5.6数据库