一个数组内的元素是否重复
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)]