数组去重古与今
2018-06-24 01:29:47来源:未知 阅读 ()
关于数组去重这个问题,我曾经在牛客网上就遇到过一次,后来在做一些网上的笔试的时候又碰到了这个问题,其实数组去重的方法有非常多种,五花八门的。但其实我觉得这只是一件很小的事,何必弄得好像实现的方法越复杂就越厉害一样。废话不多说,这里我只介绍我所认可的两种方法。
第一种,就是很普通的思维,比如,对于[1,2,2,3,3,3,4,4,4,4]这个数组来说,我们的思路就是,新建一个空的数组,然后对这个要处理的数组做遍历,遍历的每一项都会问一下新数组:“你有没有存过我啊?”,存过(新数组.indexOf(i)>0),那么就不再存了;没存过(新数组.indexOf(i)==-1),就存进去。所以就有了如下代码:
1 var arr=[1,2,2,3,3,3,4,4,4,4]; 2 (function (arr){ 3 newArr=[]; 4 for(let i=0;i<arr.length;i++){ 5 if(newArr.indexOf(arr[i])===-1){ 6 newArr.push(arr[i]); 7 } 8 }; 9 10 })(arr); 11 12 console.log(newArr);
在这里,我用一个自执行的匿名函数对数组做了个遍历,由于newArr是一个全局变量,在执行后不会被销毁,而是返回出去,最后打印的结果正是[1,2,3,4];
这是es5最朴实无华的写法,可以说是一种“古代的写法”吧,es6中有一种结构叫set,它天生就自带互异性,就是说肯定不会有重复的,看一段代码就知道了。
1 var s=new Set(arr);//结果为Set{1,2,3,4} 2 var newArr=Array.from(s);//把这个类数组对象转为真正的数组 3 console.log(newArr);
怎么样?是不是超简单,在第一行代码中就已经得到了一个无重复的类数组对象,而Array.from的作用正是把一个类数组对象(比如平常我们用document.getElementsByTagName获取到的元素集合就是类数组对象)转变为真正的对象。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 关于jQuery UI 使用心得及技巧 2020-03-29
- JS简单去除数组中重复项的方法 2020-03-16
- javascript 中关于array的常用方法详解 2020-03-16
- 关于JS array的数组 2020-03-08
- javascript过滤数组重复元素的实现方法 2020-03-05
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash