• js数组中去除重复值的几种方法


    去除数组重复值方法:
    
        1,利用indexOf()方法去除
    
        思路:创建一个新数组,然后循环要去重的数组,然后用新数组去找要去重数组的值,如果找不到则使用.push添加到新数组,最后把新数组返回回去就行了
    
           看不懂没关系,上代码就比较容易懂了
    	
    function fun(arr){
     let newsArr = [];
     for (let i = 0; i < arr.length; i++) {
      if(newsArr.indexOf(arr[i]) === -1){
       newsArr.push(arr[i]);
      }
     }
     return newsArr;
    }
    
        2,利用splice方法去除
    
        思路:这个方法有点模仿冒泡  俩层循环,外层循环遍历数组,内层循环比较值,如果有相同, 则使用splice去除 然后返回处理完的数组即可
    
           看不懂没关系,上代码就比较容易懂了
    	
    function fun(arr){
     for (let i = 0; i < arr.length; i++) {
      for(let j = i+1; j < arr.length; j++){
       if(arr[i]==arr[j]){
        arr.splice(j,1);          j--;
       }
      }
     }
     return arr;
    }
    
        3,利用es6新增的集合Set去除
    
        这里简单介绍一下Set 集合,他跟数组很相识,但不是数组,是集合。他里面也有跟多方法,如增(add),删(delete),查(has)等等。
    
        他最重要的特点是:元素不能重复,即在Set集合不会出现相同的元素
    
        Set去重方案1:
    
        思路:因为Set集合里面不允许出现重复值,那我们就可以利用这个特点将我们的数组传进去去重
    
           首先new一个Set集合将要去重的数组作为参数传进去,然后创建一个新数组,循环遍历一下集合,将每个集合元素添加到新数组,最后将新数组返回即可
    	
    function fun(arr){
     let s1 = new Set(arr);
     let arr2 = [];
     for(let item of s1){
      arr2.push(item);
     }
     return arr2;
    }
    
        Set去重方案2(使用数组方法Array.form()):
    
        思路:Array.from(); 能够把伪数组,集合转成数组类型,这个方法配合上Set集合就刚好符合我们的需求
    	
    function fun(arr){
     let s1 = new Set(arr); 
     return Array.from(s1);
    }
    
        Set去重方案3(使用es6展开运算符...):
    
        思路:es6展开运算符能够将一个数组转为用逗号分隔的参数序列
    	
    function fun(arr){
     let s1 = new Set(arr); 
     return [...s1];
    }
    
  • 相关阅读:
    浏览器中复制不能复制的文档并使用word通配符进行高级替换整理
    windows找回映像文件“装载”快捷菜单
    python如何得到模块所在的目录
    搜狗五笔输入法自定义短语使用及设置
    启动office应用更新失败无法进入excel、word、visio的问题解决
    使用ssh登录windows10
    python的索引与切片
    python列表和元组的操作函数
    Python字符串的格式化
    与python字符串相关的一些函数
  • 原文地址:https://www.cnblogs.com/interdrp/p/15832762.html
Copyright © 2020-2023  润新知