js实现数组去重、判断数组以及对象中的内容是否相同


Posted in Javascript onNovember 29, 2013
/* 
*数组元素去重 
*/ 
if(typeof Array.prototype.distinct != "function"){ 
Array.prototype.distinct = function(){ 
this.sort(); 
for(var i=0;i<this.length-1;i++){ 
if($.isPlainObject(this[i]) && $.isPlainObject(this[i+1])){ 
if(o2o(this[i],this[i+1])){ 
this.splice(i,1); 
} 
}else if($.isArray(this[i]) && $.isArray(this[i+1])){ 
if(a2a(this[i],this[i+1])){ 
this.splice(i,1); 
} 
}else if(this[i]===this[i+1]){ 
this.splice(i,1); 
} 
} 
} 
} 
/* 
*比较对象是否相同 
*/ 
function o2o(o1,o2){ 
if(!($.isPlainObject(o1) && $.isPlainObject(o2))){ 
return false; 
} var k1k2=[],k1 =[],k2=[]; 
$.each(o1,function(k,v){ 
k1.push(k); 
}); 
$.each(o2,function(k,v){ 
k2.push(k); 
}); 
if(k1.length != k2.length){ 
return false; 
} 
k1k2 = k1; 
k1k2 = k1k2.concat(k2); 
k1k2.distinct(); 
if(k1.length != k1k2.length || k2.length != k1k2.length){ 
return false; 
} 
var flag=true; 
$.each(k1k2,function(i,v){ 
var v1= o1[v]; 
var v2 =o2[v]; 
if(typeof v1 != typeof v2){ 
flag= false; 
}else{ 
if($.isPlainObject(v1) && $.isPlainObject(v2)){//recursion 
flag = o2o(v1,v2); 
if(!flag){ 
return false; 
} 
}else if($.isArray(v1) && $.isArray(v2)){ 
flag = a2a(v1,v2); 
if(!flag){ 
return false; 
} 
}else{ 
if(v1 !== v2){ 
flag= false; 
} 
} 
} 
}); 
return flag; 
} 
/* 
*比较数组是否完全相同 
*/ 
function a2a(a1,a2){ 
if(!($.isArray(a1) && $.isArray(a2))){ 
return false; 
} 
if(a1.length != a2.length){ 
return false; 
} 
a1.sort(); 
a2.sort(); 
for(var i=0;i<a1.length;i++){ 
if(typeof a1[i] != typeof a2[i]){ 
return false; 
} 
if($.isPlainObject(a1[i]) && $.isPlainObject(a2[i])){ 
var retVal = o2o(a1[i],a2[i]); 
if(!retVal){ 
return false; 
} 
}else if($.isArray(a1[i]) && $.isArray(a2[i]) ){//recursion 
if(!a2a(a1[i],a2[i])){ 
return false; 
} 
}else if(a1[i] !== a2[i]){ 
return false; 
} 
} 
return true; 
}
Javascript 相关文章推荐
JavaScript学习笔记(十)
Jan 17 Javascript
一段批量给页面上的控件赋值js
Jun 19 Javascript
简易js代码实现计算器操作
Apr 15 Javascript
Javascript操作URL函数修改版
Nov 07 Javascript
javascript创建数组之联合数组的使用方法示例
Dec 26 Javascript
关于JS 预解释的相关理解
Jun 28 Javascript
jQuery插件实现可输入和自动匹配的下拉框
Oct 24 Javascript
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
微信小程序分享功能onShareAppMessage(options)用法分析
Apr 24 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
Nov 15 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
Nov 29 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
May 19 Javascript
jquery限定文本框只能输入数字即整数和小数
Nov 29 #Javascript
js中事件的处理与浏览器对象示例介绍
Nov 29 #Javascript
js实现的折叠导航示例
Nov 29 #Javascript
javascript特殊用法示例介绍
Nov 29 #Javascript
jquery和ajax的关系详细介绍
Nov 29 #Javascript
js操作table示例(个人心得)
Nov 29 #Javascript
css配合jquery美化 select
Nov 29 #Javascript
You might like
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
javascript中的float运算精度实例分析
2010/08/21 Javascript
jquery easyui 结合jsp简单展现table数据示例
2014/04/18 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
基于Jquery插件实现跨域异步上传文件功能
2016/04/26 Javascript
jQuery 实现评论等级好评差评特效
2016/05/06 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
2018/08/19 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
js实现简单的贪吃蛇游戏
2020/04/23 Javascript
vue双击事件2.0事件监听(点击-双击-鼠标事件)和事件修饰符操作
2020/07/27 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
Python中的pass语句使用方法讲解
2015/05/14 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
Pandas分组与排序的实现
2019/07/23 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
Pycharm编辑器功能之代码折叠效果的实现代码
2020/10/15 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
施华洛世奇天猫官方旗舰店:SWAROVSKI
2017/04/17 全球购物
世界上最大的在线汽车租赁预订平台:Rentalcars.com(支持中文)
2018/10/12 全球购物
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
艺术应用与设计个人的自我评价
2013/11/23 职场文书
护理毕业生自我鉴定
2014/02/11 职场文书
植树节标语
2014/06/27 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
音乐教师求职信范文
2015/03/20 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
《水浒传》读后感3篇(范文)
2019/09/19 职场文书