JSON对象字符串数组多字段(多列)排序
来源:互联网 发布:mysql官网下载 编辑:程序博客网 时间:2024/06/16 06:14
JSON对象字符串数组多字段(多列)排序
/** 功能:对JSON对象字符串数组进行多字段(多列)排序* 参数:* objArr: 目标数组* keyArr: 排序字段,以数组形式传递* type:排序方式,undefined以及asc都是按照升序排序,desc按照降序排序* */function sortObjectArray(objArr, keyArr, type) { if (type != undefined && type != 'asc' && type != 'desc') { return 'error'; } var order = 1; if (type != undefined && type == 'desc') { order = -1; } var key = keyArr[0]; objArr.sort(function (objA, objB) { if (objA[key] > objB[key]) { return order; } else if (objA[key] < objB[key]) { return 0 - order; } else { return 0; } }) for (var i = 1; i < keyArr.length; i++) { var key = keyArr[i]; objArr.sort(function (objA, objB) { for (var j = 0; j < i; j++) { if (objA[keyArr[j]] != objB[keyArr[j]]) { return 0; } } if (objA[key] > objB[key]) { return order; } else if (objA[key] < objB[key]){ return 0 - order; } else { return 0; } }) } return objArr;}测试代码:var arr = [ { name: 'titanic', addr: 'americ', type: 'film', size: 1024 }, { name: 'hunting', addr: 'china', type: 'tv', size: 10240 }, { name: 'drunken', addr: 'china', type: 'film', size: 2048 }, { name: 'lifetimes', addr: 'china', type: 'tv', size: 20 }, { name: 'lifetimes', addr: 'china', type: 'tv', size: 2 }, { name: 'lifetimes', addr: 'americ', type: 'tv', size: 204 }, { name: 'lifetimes', addr: 'americ', type: 'film', size: 20480 }];console.log('排序前:');console.log(arr);var orderArr = sortObjectArray(arr, ['name', 'addr', 'type', 'size']);console.log('排序后:');console.log(orderArr);打印结果:排序前:[ { name: 'titanic', addr: 'americ', type: 'film', size: 1024 }, { name: 'hunting', addr: 'china', type: 'tv', size: 10240 }, { name: 'drunken', addr: 'china', type: 'film', size: 2048 }, { name: 'lifetimes', addr: 'china', type: 'tv', size: 20 }, { name: 'lifetimes', addr: 'china', type: 'tv', size: 2 }, { name: 'lifetimes', addr: 'americ', type: 'tv', size: 204 }, { name: 'lifetimes', addr: 'americ', type: 'film', size: 20480 } ]排序后:[ { name: 'drunken', addr: 'china', type: 'film', size: 2048 }, { name: 'hunting', addr: 'china', type: 'tv', size: 10240 }, { name: 'lifetimes', addr: 'americ', type: 'film', size: 20480 }, { name: 'lifetimes', addr: 'americ', type: 'tv', size: 204 }, { name: 'lifetimes', addr: 'china', type: 'tv', size: 2 }, { name: 'lifetimes', addr: 'china', type: 'tv', size: 20 }, { name: 'titanic', addr: 'americ', type: 'film', size: 1024 } ]
阅读全文
0 0
- JSON对象字符串数组多字段(多列)排序
- JSON数组多字段排序
- java 对象的排序 多字段比较 字符串排序
- JSON 数字排序 多字段排序
- PHP多维数组指定多字段排序
- yii2 多维数组指定多字段排序
- elasticsearch-基于多字段,字符串内部排序
- sql多条件多字段排序
- mysql多字段排序(去null)
- SQL多字段排序
- 多字段排序
- sql多字段排序
- 多字段查询排序
- thinkphp 多字段排序
- oracle多字段排序
- 多字段排序处理
- Mysql多字段排序
- java 多字段排序
- springboot启动与调用
- <object>元素通过js设置宽高
- 理解RemoteViews概念
- 搭建数据仓库第02篇:数据仓库技术架构解决方案
- 【Codeforces559E】Gerald and Path
- JSON对象字符串数组多字段(多列)排序
- 嵌套 Tab 时部分 Fragment 不显示及指示器 Indicator 卡顿问题
- 小结六
- [WQS二分] BZOJ2654:tree
- 【接口报错】写接口,返回json给ajax时,一直是error函数接收。
- Linux指令用之记之-tr
- word-wrap和word-break区别详解
- lambda表达式
- 关于json库的简单介绍