数组 去重 迷南。 2022-06-01 12:51 13阅读 0赞 今天工作遇到此问题,尝试多个方法不尽人意,故此写个博客来总结一下如何在js中去除重复元素。 方法1: **\[js\]** [view plain][] [copy][view plain] 1. Array.prototype.method1 = function()\{ 2. var arr\[\]; //定义一个临时数组 3. for(var i = 0; i < this.length; i++)\{ //循环遍历当前数组 4. //判断当前数组下标为i的元素是否已经保存到临时数组 5. //如果已保存,则跳过,否则将此元素保存到临时数组中 6. if(arr1.indexOf(this\[i\]) == -1)\{ 7. arr.push(this\[i\]); 8. \} 9. \} 10. return arr; 11. \} 方法2: **\[js\]** [view plain][] [copy][view plain] 1. 2. Array.prototype.method2 = function()\{ 3. var h\{\}; //定义一个hash表 4. var arr\[\]; //定义一个临时数组 5. 6. for(var i = 0; i < this.length; i++)\{ //循环遍历当前数组 7. //对元素进行判断,看是否已经存在表中,如果存在则跳过,否则存入临时数组 8. if(!h\[this\[i\]\])\{ 9. //存入hash表 10. h\[this\[i\]\] = true; 11. //把当前数组元素存入到临时数组中 12. arr.push(this\[i\]); 13. \} 14. \} 15. return arr; 16. \} 方法3: **\[js\]** [view plain][] [copy][view plain] 1. Array.prototype.method3 = function()\{ 2. //直接定义结果数组 3. var arr\[this\[0\]\]; 4. for(var i = 1; i < this.length; i++)\{ //从数组第二项开始循环遍历此数组 5. //对元素进行判断: 6. //如果数组当前元素在此数组中第一次出现的位置不是i 7. //那么我们可以判断第i项元素是重复的,否则直接存入结果数组 8. if(this.indexOf(this\[i\]) == i)\{ 9. arr.push(this\[i\]); 10. \} 11. \} 12. return arr; 13. 14. \} 方法4: **\[js\]** [view plain][] [copy][view plain] 1. Array.prototype.method4 = function()\{ 2. //将数组进行排序 3. this.sort(); 4. //定义结果数组 5. var arr\[this\[0\]\]; 6. for(var i = 1; i < this.length; i++)\{ //从数组第二项开始循环遍历数组 7. //判断相邻两个元素是否相等,如果相等说明数据重复,否则将元素写入结果数组 8. if(this\[i\] !== arr\[arr.length - 1\])\{ 9. arr.push(this\[i\]); 10. \} 11. \} 12. return arr; 13. 14. \} 例如: **\[js\]** [view plain][] [copy][view plain] 1. var arr = \[112,112,34,'你好',112,112,34,'你好','str','str1'\]; 2. alert(arr.method3()); 方法1和方法3都用到了数组的indexOf()方法,此方法主要用来查找元素在数组中第一次出现的位置。比较浪费资源和时间。 方法2使用的是hash表,把已经出现过的元素通过下标形式写入到一个object内,下标的引用要比用数组indexOf()方法搜索节省时间。 方法4是先将数组排序,然后一次比较相邻的两个元素的值,排序使用的是js原生的sort()方法。 读者可以自行编写程序测试四种方法的效率如何。例如:首先利用随机函数生成一个50000长度的随机数数组,然后分别用四种方法进行执行,记录程序运行时间进行比较四种方法的优劣。 版权声明:转载时请标注http://blog.csdn.net/zhihua\_w [view plain]: http://blog.csdn.net/zhihua_w/article/details/52184289#
相关 数组去重,json数组去重 1.借助json对象对数组进行去重,并计算重复的次数 Array.prototype.unique = function (){ var key = 浅浅的花香味﹌/ 2022年06月13日 03:40/ 0 赞/ 384 阅读
相关 数组去重 第一:通过Array的原型创建方法: Array.prototype.myArrayWeighting = function myArrayWeighting(){ r囧r小猫/ 2022年06月06日 05:55/ 0 赞/ 18 阅读
相关 数组去重 //第一种 // ES6 部署了 Set 以及 Array.from 方法,太强大了!如果浏览器支持,完全可以这样: function unique1 素颜马尾好姑娘i/ 2022年05月25日 03:42/ 0 赞/ 297 阅读
相关 数组去重。。。。 数组去重两种思路: > 1.在原有数组基础上进行去重 > 2.申请新的数组进行去重操作 原有数组上进行操作: 1. es6 set方法去重 fun 小鱼儿/ 2022年05月10日 03:20/ 0 赞/ 325 阅读
相关 数组去重 源网址:[https://wenda.so.com/q/1461313505721067][https_wenda.so.com_q_1461313505721067] 关于 喜欢ヅ旅行/ 2022年04月15日 02:41/ 0 赞/ 346 阅读
相关 数组去重 //数组去重 function unique(arr) { var res = [arr[0]]; for(var i = 1; i 淩亂°似流年/ 2022年03月08日 12:18/ 0 赞/ 286 阅读
相关 数组去重 对于数组去重的方法有很多,这里总结了数组去重的三种常用方式, public class Test { public static void main(Str ╰+攻爆jí腚メ/ 2022年01月23日 11:51/ 0 赞/ 356 阅读
相关 数组去重 数据去重 var arr = new Array(8); arr\[0\] = \{ XY: "A学院", XM: "学生一" \}; arr\[1\] = \ 曾经终败给现在/ 2021年11月05日 07:28/ 0 赞/ 429 阅读
相关 数组去重 //数组去重 方法1: let arr = [10,22,30,22,10,6,7,6] arr = arr.sort() 你的名字/ 2021年10月16日 01:58/ 0 赞/ 464 阅读
还没有评论,来说两句吧...