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)]
posted @ 2021-06-10 10:21  sanhuamao  阅读(638)  评论(0编辑  收藏  举报