zoukankan      html  css  js  c++  java
  • 数组去重

    数组去重的几种方法

    1、Array.prototype.sort():相邻元素去重

    相邻元素去重的核心在于Array.sort()能够对数组进行排序。这样相等的数组就会在相邻的位置,通过比较相邻的元素就可以起到去重的作用

    let c=[1,2,3,4,5,6,1,2,3]
    function newArr(arr){
     let Arr=arr.sort()
     let b=[]
     for(let i=0;i<Arr.length;i++){
     if(Arr[i]!==Arr[i+1]){
      b.push(Arr[i])
     }
     }
     return b
    }
    2、遍历去重:indexOf
    indexOf 方法返回给定元素在数组中第一次出现的位置,如果没有出现则返回-1。首先我们新建一个空数组(arry),如果:arry.indexOf(数组元素)===-1,那么我们就可以知道arry中不存在元素。
    let c=[1,2,3,4,5,6,1,2,3]
    function newArr(arr){
     let b=[]
     for(let i=0;i<arr.length;i++){
     if(b.indexOf(arr[i])==-1){
      b.push(arr[i])
     }
     }
     return b
    }
    3、循环遍历之:map()/forEach()
    map()和forEach()都可以实现遍历数组。所以以上的方法都可以用map()、forEach()改写。下面我只简单的改写一个,其他的改写方式参照即可。
    let c=[1,2,3,4,5,6,1,2,3]
    function newArr(arr){
     let b=[]
     arr.forEach(res=>{
     if(b.indexOf(res)==-1){
      b.push(res)
     }
     })
     return b
    }
    4、ES6:Set数据结构
    Set数据类似于数组,但是成员的值都是唯一的,没有重复的值。它可以接收一个数组,类于:let a=[1,2,3,1,2]  Set(a)=>1,2,3 所以可以使用Set()实现去重。
     
    let c=[1,2,3,4,5,6,1,2,3]
    function newArr(arr){
     let b=new Set(arr)
     let c=Array.from(b)
     return c
    }
     
  • 相关阅读:
    CC++ 文件操作
    loadrunner之Paramater在负载测试中的数据生成规则
    loadrunner关联及web_reg_save_param方法浅析
    mysql union 与 union all 语法及用法
    sql 语句中as的用法和作用
    数据库主从复制和读写分离
    《剑指offer》算法题第十二天
    《剑指offer》算法题第十一天
    《剑指offer》算法题第十天
    《剑指offer》算法题第九天
  • 原文地址:https://www.cnblogs.com/qq976864507/p/11780644.html
Copyright © 2011-2022 走看看