JS数组去掉重复元素
2019-08-14 10:18:41来源:博客园 阅读 ()
JS数组去掉重复元素,这里提供3中写法。
var arr =[1,2,3,4,5,6,3,4,7,2,4,1,8];
输出:[1,2,3,4,5,6,7,8];
1.使用indexOf()
arr.indexOf(a,b)这个方法是查找a在arr中首次出现的位置(b这个参数规定了在arr中开始检索的位置,可写可不写,不写的话检索位置为0).
利用这个方法来判断新数组中是否出现过这个元素,如果新数组中没有这个元素,那么把元素添加到新数组中,如果新数组中已经有这个元素了那就不进行操作,遍历之后得到的新数组即为所求。
1 <script> 2 var arr = [1,2,3,4,5,6,3,4,7,2,4,1,8];//原数组 3 var newArr = [];//定义一个新数组来接收元素 4 5 for(var i = 0;i<arr.length;i++){ 6 //判断newArr中是否有arr[i]这个元素,如果返回结果为-1(<0)证明新数组newArr中没有这个元素,则把元素添加到新数组中 7 if(newArr.indexOf(arr[i])<0){ 8 newArr.push(arr[i]); 9 } 10 } 11 12 console.log(newArr); 13 14 </script>
2.不添加新数组的比较
将数组中前一个元素与后面剩下的元素依次进行比较,如果发现两个元素相同,则删除后面的元素。
这里会用到arr.splice(index,n);这个方法是删除数组中的某个元素,删除下标为index的元素,删除n位
<script> var arr = [1,2,3,4,5,6,3,4,7,2,4,1,8]; for(var i = 0;i<arr.length-1;i++){//遍历获取“前一个元素”,最后一个数不用获取,它本身已经被前面所有元素给排除过了 for(var j = i+1;j<arr.length;j++){//遍历获取剩下的元素,“后一个元素”的起始索引就是“前一个元素”的索引+1 if(arr[i] == arr[j]){//如果“前一个元素”与后面剩下的元素之一相同,那么就要删除后面的这个元素 arr.splice(j,1); j--;//如果删除了这个元素,那么后面的元素索引值就会发生改变,所以这里的j需要-1 } } } console.log(arr); </script>
3.使用空对象比较
这个方法相对来说比较麻烦,是我前几天学习对象的时候写的方法,主要就是利用对象的属性和属性值来判断这个对象中是否存在这个属性,如果存在这个属性那么就把这个元素在数组中删除当中。
把数组的元素给对象当成属性,对象中没有这个属性,那么就添加这个属性并给属性一个属性值,如果这个对象中有这个属性那么就删除这个数组的元素。
<script> var obj = {}; for(var i = 0;i<arr.length;i++){ var o = arr[i];//将数组中的元素给对象 if(obj[o] == undefined){//obj[o]取对象中属性为o的属性,如果没有这个属性则会返回undefined //可以判断obj这个对象中有没有这个属性 obj[o] = 1; }else{ arr.splice(i,1); } } console.log(arr); </script>
原文链接:https://www.cnblogs.com/strawberry-zyyyy/p/11242164.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:ES6新语法(二)
- js防止表单重复提交实现代码 2020-03-29
- js中去掉字串左右空格 2020-03-20
- 如何用算法删除重复数据 2020-03-18
- JS简单去除数组中重复项的方法 2020-03-16
- 关于JS array的数组 2020-03-08
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