代码

<script type="text/javascript"> 
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>

一个同行对上述程序代码不解,主要是不理解下面这段代码:

 for(var i=0;o = $[i];i++){ 
  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对数组去重复值相关推荐

  1. js去除数组中重复值

    //第三种方法加强版 Array.prototype.distinct=function(){ var sameObj=function(a,b){ var tag = true; if(!a||!b ...

  2. python二维数组去重复_php二维数组去重,array_unique出除重复数据

    根据网站提供的方法修改所来保持数据键名不变.//二维数组去掉重复值 并保留键值 function array_unique_fb($array2D) { $key = array(); foreach ...

  3. java 数组正则表达式_java正则表达式实现提取需要的字符并放入数组【ArrayList数组去重复功能】...

    本文实例讲述了java正则表达式实现提取需要的字符并放入数组.分享给大家供大家参考,具体如下: 这里演示java正则表达式提取需要的字符并放入数组,即arraylist数组去重复功能. 具体代码如下: ...

  4. php数组去重复数据的小例子

    2019独角兽企业重金招聘Python工程师标准>>> php数组去重复数据示例,有时候获得的php数组中总是出现value重复的,使用下面的方法就可以去掉重复数据 以数字开头的重复 ...

  5. php 二位数组去掉重复,PHP 二维数组去掉重复值并保持原结构

    PHP 二维数组去掉重复值并保持原结构 直接上代码,解释很详细 //二维数组去掉重复值 function arrunique($a){ foreach($a[0] as $k => $v){ / ...

  6. python去除数组缺失值_动态数组的应用,VBA中如何利用动态数组去除重复值的第二讲...

    大家好,我们今日继续讲解VBA代码解决方案的第62讲内容:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法第二部分.在上一讲中,我们讲了知识点的利用,其一是Filter函数,其二是ReDi ...

  7. js判断数组中重复元素并找出_javascript查找数组中重复元素的方法

    这篇文章主要介绍了JS查找数组中重复元素的方法,结合具体实例形式对比分析了javascript针对数组的遍历.判断.排序等相关操作技巧,需要的朋友可以参考下 本文实例讲述了JS查找数组中重复元素的方法 ...

  8. c++删除数组中重复元素_在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法...

    大家好,我们今日继续讲解VBA数组与字典解决方案第22讲:在VBA中如何使用动态数组,以及利用动态数组去除重复值的方法.如果文本中含有大量的重复值,此时,如果我们要剔除重复值,该怎么办?用VBA的方法 ...

  9. PHP 二维数组去掉重复值并保持原结构

    不得不说PHP的数组功能真的是非常强大. 下面直接上PHP的二维数组去掉重复值并保持原结构的 代码: //二维数组去掉重复值 function arrunique($a){ foreach($a[0] ...

最新文章

  1. pyx文件 生成pyd 文件用于 cython调用
  2. Chrome神器Vimium快捷键学习记录
  3. 模态对话框阻塞主线程的话不影响其他线程操作主线程控件(不阻塞)
  4. [转]Spring事务tx:annotation-driven/
  5. Android学习总结(2)——App客户端与服务器交互中的token
  6. pip 错误:ModuleNotFoundError: No module named pip
  7. JavaScript之语句
  8. php phantomjs 安装_安装php-phantomjs
  9. python如何提取数据_python提取数据的常用方法
  10. android 获取邮箱账号,android获取google邮箱
  11. 联想笔记本e43l_联想笔记本E43L的产品介绍
  12. 0元参会丨第十届数据技术嘉年华精彩抢先速览
  13. cortex m3 寄存器
  14. android ShareSDK分享,QQ,微信,新浪等分享
  15. 产品经理:个人能力提升方法
  16. 猪悟能论坛看贴工具(Discuz!7版) v1.0
  17. 信息数据管理思维导图(Xmind)
  18. Recon-all命令实例
  19. 快捷安装Mac系统下安装/卸载brew
  20. Win32 游戏开发:贪吃蛇 上篇

热门文章

  1. php中throw try,PHP的Try, throw 和 catch简单用法_PHP教程
  2. postman提交文件及get、post请求
  3. clickhouse的kafka表引擎 +接口表
  4. 苹果自研基带野心不死:给高通300多亿后,正洽购英特尔调制解调器业务
  5. 照片解锁手机不能忍?教你用OpenCV做活体检测 | 有代码
  6. GitHub发布年度机器学习榜:TensorFlow最火,PyTorch失踪,Julia第四
  7. diss范式:明星AI公司秋招被爆大规模毁约;CEO戴文渊:责任在我有错认罚
  8. 搜狗赴美上市:首日涨3.8%,王小川哽咽感谢母亲
  9. FlutterFragment 踩坑记
  10. 寒假作业3:抓老鼠啊~亏了还是赚了?