对象去重,根据指定状态对比不同对象
来源:互联网 发布:visio数据流程图 编辑:程序博客网 时间:2024/06/10 18:13
//对象去重复 Array.prototype.uniqueObjRepeat = function(){ //this.sort();//是否排序 //定义结果数组 var arr=[]; arr.push(this[0]); for(var i = 1; i < this.length; i++){ //从数组第二项开始循环遍历数组
//判断相邻两个元素是否相等,如果相等说明数据重复,否则将元素写入结果数组 if(JSON.stringify(this[i]) != JSON.stringify(arr[arr.length - 1])){ arr.push(this[i]); } //console.error(arr); } return arr; };
//去掉对象中某个不同状态对象(此处场合,server返回一堆集群,存在相同IP集群,但是服务器状态不同,此处做法为保留在线IP对象)
Array.prototype.removeObjSameName=function () { var arr=[],cantPush=true; arr.push(this[0]); console.warn(this); console.warn(arr); for(var i = 1; i < this.length; i++){ //从数组第二项开始循环遍历数组 //判断相邻两个元素是否相等,如果相等说明数据重复,否则将元素写入结果数组 for(var k=0;k<arr.length;k++){ if(this[i]['name'] == arr[k]['name']){ if(this[i].status==1||arr[k].status==1){ arr[k]['status']='1'; this[i]['status']='1'; } cantPush=false; } } if(cantPush==true){ arr.push(this[i]); } cantPush=true;//重置条件 console.error(arr); } return arr;};
例如
var arrObj1=[{name:'clientA',ip:'192.168.0.4',descrip:'boy',status:1},{name:'clientB',ip:'192.168.0.4',descrip:'boy',status:0},{name:'clientC',ip:'192.168.0.5',descrip:'boy',status:1},{name:'clientD',ip:'192.168.0.6',descrip:'boy',status:1},{name:'clientA',ip:'192.168.0.4',descrip:'boy',status:1}];
使用:
arrObj1=arrObj1.uniqueObjRepeat().removeObjSameName();
阅读全文
0 0
- 对象去重,根据指定状态对比不同对象
- 数组去重,根据对象属性去重
- java list 根据对象一个字段去重
- List<E>根据对象某属性去重
- js数组简单去重,js数组根据对象中的元素去重
- List<对象>去重
- List<对象>去重
- java 对象去重
- 对象去重
- 数组对象去重
- list对象去重
- 对象去重
- 遍历对象去重
- JS对象去重
- list中对象去重
- List对象去重操作
- js对象去重应用
- JS 数组对象去重
- Maven学习笔记(五)——Maven生命周期
- 剑指Offer---栈的压入和弹出序列
- 思维导图怎么做流程图的超快速方法讲解
- course课程笔记1
- Linux安装face-recognition
- 对象去重,根据指定状态对比不同对象
- 两种下载YouTube视频的方法
- SpringBoot建工程jar工程和war工程的区别
- restful风格,restcontroller与controller
- Visual Studio2010"当前不会命中代码,源代码与原始版本不同"问题的解决方法
- dom4j解析xml练习源码
- 推荐一款前端轻量级的toolTip插件-Tippy.js
- 使用 Virtual Box 加载一个Unbuntu
- jquery.fullPage.js全屏滚动插件的使用方法