对象数组比较
来源:互联网 发布:软件资质认证 编辑:程序博客网 时间:2024/06/04 19:07
数组对象(其实就是一个json对象),比如var courseJson = [{chapter:'2',section:'3',name='part1'},
{chapter:'2',section:'1',name='part2'},{chapter:'1',section:'2',name='part3'}]
注意:直接写出来的是json字符串形式,JSON.parse(courseJson)转成真正的json再做处理。
代码实现:
只比较一个属性:
//对象数组比较 courseJson.sort(compare("section")); console.log(courseJson); function compare(prop) { return function(obj1, obj2) { var val1 = obj1[prop]; var val2 = obj2[prop]; if (val2 < val1) { return 1; } else if (val2 > val1) { return -1; } else { return 0; } }; }
比较两个属性:
先比较第一个,第一个如果相等,然后比较第二个
courseJson.sort(compare("chapter", "section")); console.log(courseJson); function compare() { var arg = arguments; return function(obj1, obj2) { var val1 = obj1[arg[0]]; var val2 = obj2[arg[0]]; //先比较对象第一个属性 if (val2 < val1) { return 1; } else if (val2 > val1) { return -1; } else { //相等的时候比较第二个 // return 0; var value1 = obj1[arg[1]]; var value2 = obj2[arg[1]]; if (value2 < value1) { return 1; } else if (value2 > value1) { return -1; } else { return 0; } } }; }
比较多个属性:
不设定比较的参数数量的比较函数
function compare() { var arg = arguments; var len = arg.length; console.log('len='+len); var flag; return function(obj1, obj2) { for (var i = 0; i < len; i++) { val1 = obj1[arg[i]]; val2 = obj2[arg[i]]; if (val2 < val1) { flag = 1; break; } else if (val2 > val1) { flag = -1; break; } else { //相等的时候比较第二个 flag = 0; } } return flag; }; }
0 0
- 对象数组比较
- 对象数组集合中对象数组比较合并
- 数组和对象间的比较
- new创建对象数组 比较 new单个对象的优点
- java对象的打印,比较和对象数组
- JS 对象数组的元素删除,比较对象数组,删除重复对象
- C#基础之数组 (排序,对象大小比较)
- C#基础之数组排序,对象大小比较
- C#基础之数组排序,对象大小比较
- java 基础一 对象和数组的比较
- js比较两个数组对象,取出不同的值
- C#基础之数组排序,对象大小比较
- JavaScript和ES6中字符串、数组对象的比较
- Map/Set与数组和对象的比较
- map,set及与对象和数组的比较
- 比较数组
- 数组比较
- 数组比较
- 从相册选取照片
- AvFilter实现转码音频
- 【bzoj2763】【JLOI2011】飞行路线
- Collabtive项目管理系统介绍
- 字符集和字符编码
- 对象数组比较
- 我的错
- 关于陆医生统计的工作程序备份
- 解析session
- 时间控件插件[js/jquery]总结和简单实践-前端
- 解决ubuntu update出现Failed to fetch,hash sum mismatch的问题
- 学习笔记_获取对象信息
- 现代web前端开发工具和流程
- BootStrap基础——排版(一)