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

两个数组去重合并

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

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)]

  转载请注明: 小浩之随笔 js数组重复问题

 上一篇
toRef函数和toRefs函数 toRef函数和toRefs函数
我们知道ref可以用于创建一个响应式数据,而toRef也可以创建一个响应式数据,那他们之间有什么区别呢? 事实上,如果利用ref函数将某个对象中的属性变成响应式数据,修改响应式数据是不会影响到原始数据。 import {ref} from
2021-05-18
下一篇 
js深度拷贝的方法 js深度拷贝的方法
引入:原始值与引用值的复制 当我们复制原始数据时,如数值、字符串,举例来说,下面的b相当于开辟了新的空间来放置变量b,并储存了a的值,所以改变b的值不会影响a的值。 let a=1 let b=a console.log(a) //1 co
2020-09-04
  目录