【讨论】js对数组去重复值
代码
Array.prototype.distinct = function(){
var $ = this;
var o1 = {}; //存放去重复值
var o2 = {}; //存放重复值
var o3 = []; //存放重复值
var o; //数组单个变量
for(var i=0;o = $[i];i++){
if(o in o1){
if(!(o in o2)) o2[o] = o;
delete $[i];
}else{
o1[o] = o;
}
}
$.length = 0; //清空原数组
for(o in o1){
$.push(o);
}
for(o in o2){
o3.push(o);
}
return o3;
}
var a = [2,2,2,3,3,3,4,4,5,6,7,7];
alert("原数组:" + a);
alert("有重复的元素是:" + a.distinct()); //2,3,4,7
alert("整理后的数组是:" + a); //2,3,4,5.6,6
alert("整理后的长度是:" + a.length) //6
</script>
一个同行对上述程序代码不解,主要是不理解下面这段代码:
if(o in o1){
if(!(o in o2)) o2[o] = o;
delete $[i];
}else{
o1[o] = o;
}
}
最后一起研究,讨论如下:
转载于:https://www.cnblogs.com/qiantuwuliang/archive/2010/03/22/1691702.html
【讨论】js对数组去重复值相关推荐
- js去除数组中重复值
//第三种方法加强版 Array.prototype.distinct=function(){ var sameObj=function(a,b){ var tag = true; if(!a||!b ...
- python二维数组去重复_php二维数组去重,array_unique出除重复数据
根据网站提供的方法修改所来保持数据键名不变.//二维数组去掉重复值 并保留键值 function array_unique_fb($array2D) { $key = array(); foreach ...
- java 数组正则表达式_java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】...
本文实例讲述了java正则表达式实现提取需要的字符并放入数组.分享给大家供大家参考,具体如下: 这里演示java正则表达式提取需要的字符并放入数组,即arraylist数组去重复功能. 具体代码如下: ...
- php数组去重复数据的小例子
2019独角兽企业重金招聘Python工程师标准>>> php数组去重复数据示例,有时候获得的php数组中总是出现value重复的,使用下面的方法就可以去掉重复数据 以数字开头的重复 ...
- php 二位数组去掉重复,PHP 二维数组去掉重复值并保持原结构
PHP 二维数组去掉重复值并保持原结构 直接上代码,解释很详细 //二维数组去掉重复值 function arrunique($a){ foreach($a[0] as $k => $v){ / ...
- python去除数组缺失值_动态数组的应用,VBA中如何利用动态数组去除重复值的第二讲...
大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分.在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDi ...
- js判断数组中重复元素并找出_javascript查找数组中重复元素的方法
这篇文章主要介绍了JS查找数组中重复元素的方法,结合具体实例形式对比分析了javascript针对数组的遍历.判断.排序等相关操作技巧,需要的朋友可以参考下 本文实例讲述了JS查找数组中重复元素的方法 ...
- c++删除数组中重复元素_在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法...
大家好,我们今日继续讲解VBA数组与字典解决方案第22讲:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法.如果文本中含有大量的重复值,此时,如果我们要剔除重复值,该怎么办?用VBA的方法 ...
- PHP 二维数组去掉重复值并保持原结构
不得不说PHP的数组功能真的是非常强大. 下面直接上PHP的二维数组去掉重复值并保持原结构的 代码: //二维数组去掉重复值 function arrunique($a){ foreach($a[0] ...
最新文章
- pyx文件 生成pyd 文件用于 cython调用
- Chrome神器Vimium快捷键学习记录
- 模态对话框阻塞主线程的话不影响其他线程操作主线程控件(不阻塞)
- [转]Spring事务tx:annotation-driven/
- Android学习总结(2)——App客户端与服务器交互中的token
- pip 错误:ModuleNotFoundError: No module named pip
- JavaScript之语句
- php phantomjs 安装_安装php-phantomjs
- python如何提取数据_python提取数据的常用方法
- android 获取邮箱账号,android获取google邮箱
- 联想笔记本e43l_联想笔记本E43L的产品介绍
- 0元参会丨第十届数据技术嘉年华精彩抢先速览
- cortex m3 寄存器
- android ShareSDK分享,QQ,微信,新浪等分享
- 产品经理:个人能力提升方法
- 猪悟能论坛看贴工具(Discuz!7版) v1.0
- 信息数据管理思维导图(Xmind)
- Recon-all命令实例
- 快捷安装Mac系统下安装/卸载brew
- Win32 游戏开发:贪吃蛇 上篇
热门文章
- php中throw try,PHP的Try, throw 和 catch简单用法_PHP教程
- postman提交文件及get、post请求
- clickhouse的kafka表引擎 +接口表
- 苹果自研基带野心不死:给高通300多亿后,正洽购英特尔调制解调器业务
- 照片解锁手机不能忍?教你用OpenCV做活体检测 | 有代码
- GitHub发布年度机器学习榜:TensorFlow最火,PyTorch失踪,Julia第四
- diss范式:明星AI公司秋招被爆大规模毁约;CEO戴文渊:责任在我有错认罚
- 搜狗赴美上市:首日涨3.8%,王小川哽咽感谢母亲
- FlutterFragment 踩坑记
- 寒假作业3:抓老鼠啊~亏了还是赚了?