博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组去重的方法
阅读量:7174 次
发布时间:2019-06-29

本文共 1644 字,大约阅读时间需要 5 分钟。

第一种方法

var arr = [1,2,1,4,3,2,1,5,4,2];   //声明一个新数组,把arr的第一个元素先放入新数组中   var arrNew = [arr[0]]; //[1,2]    //从下标1开始遍历出arr数组里面的所有的元素   for(var i = 1 ; i < arr.length; i++){       //arr[i]     //遍历新数组,为什么要遍历新数组呢?因为我们要把arr[i]判断下在arrNew数组里面有没有     for(var j = 0 ; j < arrNew.length; j++){         //如果arr[i] 和这个新数组里面有某一个值是相等的,那个这个arr[i],就不能放进arrNew中。        //已经找到了一个相等的,后面就可以不用判断了。         if(arr[i] ==arrNew[j]){           break;         }      }      //如果到了这里,上面的里层循环不是break结束的,而是循环的条件正常结束的      //如何判断循环是break还是正常条件不成立结束的?      if(j == arrNew.length ){        //如果是正常结束的,说明arr[i]在arrNew中找不到一个相等的。        //就应该把arr[i]放进这个新数组中        arrNew[arrNew.length] = arr[i];      }   }  console.log(arrNew);复制代码

第二种方法

//声明一个新数组,把arr的第一个元素先放入新数组中 var arrNew = [arr[0]]; //[1,2] //从下标1开始遍历出arr数组里面的所有的元素 for(var i = 1 ; i < arr.length; i++){   var flag = true; //假设当前这arr[i] 是可以存放进arrNew中的。声明在外面的无效的。   //arr[i]   //遍历新数组,为什么要遍历新数组呢?因为我们要把arr[i]判断下在arrNew数组里面有没有   for(var j = 0 ; j < arrNew.length; j++){     //如果arr[i] 和这个新数组里面有某一个值是相等的,那个这个arr[i],就不能放进arrNew中。     //已经找到了一个相等的,后面就可以不用判断了。     if(arr[i] ==arrNew[j]){       flag = false;       break;     }   }   //如果此时flag的值还是true,就说明上面那个循环里面找到的arrNew的元素没有一个和arr[i]相等   //此时就应该把arr[i]存进arrNew中去。   if(flag == true){     arrNew[arrNew.length] = arr[i];   } } console.log(arrNew);复制代码

第三种方法

var arr = [1,2,1,4,3,2,1,5,4,2];    var arrNew = [];    for (var i = 0; i < arr.length; i++) { //循环遍历原数组        if(arrNew.indexOf(arr[i])==-1){ //循环遍历原数组的每一项,判断在新数组里是否存在,找不到那么索引是为-1,则追加到新数组。            arrNew.push(arr[i]);        }    }    console.log(arrNew);复制代码

转载于:https://juejin.im/post/5ae28ed451882567336a7362

你可能感兴趣的文章
我所说的“企业存储”是什么意思
查看>>
我的友情链接
查看>>
支付宝 支付bug
查看>>
马斯洛需求理论
查看>>
C++程序设计问题总结
查看>>
404 Error on Fonts in Tomcat/Java Web App
查看>>
十进制转十六进制
查看>>
【学习笔记2】第一个Struts2应用开发
查看>>
写在 TiDB 1.0 发布之际 | 预测未来最好的方式就是创造未来
查看>>
android 自定义ViewPager
查看>>
seajs的使用1.0
查看>>
实用SQL语句
查看>>
14-利用思维导图梳理JavaSE-大汇总
查看>>
Java多线程系列--“基础篇”04之 synchronized关键字
查看>>
apache/commons/httpclient学习笔记
查看>>
mysql 查看死锁和去除死锁
查看>>
SpringMVC深度探险
查看>>
曲线图
查看>>
修改组策略--取消徽标测试
查看>>
BeanUtils1.9.1 简单使用
查看>>