• js总结 |数组重复问题


    一个数组内的元素是否重复

    1.思路:第一个元素与后面的元素对比,无重复,则从第二个元素开始与后面的元素对比...以此类推

    let isRepeat=false
    let arr=[1,2,3,1,3]
    if(arr.length>1){
        for(let i=0;i<arr.length-1;i++){
            let other=arr.slice(i+1)
            isRepeat=other.find(item=>item==arr[i])
            if(isRepeat)break;
        }
        if(isRepeat){
            console.log('重复了')
        }
    }
    

    2.思路:利用set结构的元素唯一性。只要数组元素的个数与set结构的元素个数不一致,说明重复

    let arr=[1,2,4,5,6]
    let isRepeat=new Set(arr).size!=arr.length
    

    两个数组去重合并

    思路:先把两个数组合并在一起,再创建一个新的空数组。遍历合并的数组,如果空数组没有该元素,就添加

    let arr1=[1,2,3,4]
    let arr2=[3,5,1,4]
    
    let all=arr1.concat(arr2)
    let newArr=[]
    
    for(let i=0;i<all.length;i++){
        let exist=false
        for(var j=0;j<newArr.length;j++){
            if(newArr[j]==all[i]){ 
                exist = true;//新数组已存在该元素了
            }
        }
        if(!exist){ //如果不存在
            newArr.push(all[i]);
        }
    }
    console.log(newArr)
    

    思路:利用set的唯一性,在通过解构获得新数组

    let arr1=[1,2,3,4]
    let arr2=[3,5,1,4]
    
    let all=arr1.concat(arr2)
    let newAarr=[...new Set(all)]
    
  • 相关阅读:
    Vivian's Problem UVA
    Prime k-tuple UVA
    M
    Make a Crystal UVA
    Cryptography Reloaded UVALive
    Gauss Prime UVA
    Discrete Square Roots UVALive
    The Bells are Ringing UVALive
    Huge Mods UVA
    指数循环节
  • 原文地址:https://www.cnblogs.com/sanhuamao/p/14870022.html
Copyright © 2020-2023  润新知