js实现求交集和并集的方法

function duplicateRemoval(arry){//去重
arry.sort()//将数组按升序排列
for(let i=1;i<=arry.length;i++){
/*
比较当前元素是否与前一位元素的值形同,如果相同使用splice方法将当前元素删除
最终得到一个无重合的升序排列数组
*/
if(arry[i]==arry[i-1]){
arry.splice(i,1)
i–
}
}
let str=arry.toString()
return str
}

function interSection(list1,list2){//求交集
let l1=list1.length
let l2=list2.length
let arry=[]
if(l1>=l2){
for(let i=0;i<=l1;i++){
for(let j=0;j<=l2;j++){
if(list1[i]==list2[j]){
arry.push(list1[i])
}
}
}
}else{
for(let i=0;i<=l2;i++){
for(let j=0;j<=l1;j++){
if(list2[i]==list1[j]){
arry.push(list2[i])
}
}
}
}
return duplicateRemoval(arry)

}

/*
union函数实现求两个集合的并集功能,传递的两个参数为数组
*/
function union(list1,list2){
let arry=list1.concat(list2)//使用concat函数将两个数组合并,得到的是一个新数组
return duplicateRemoval(arry)
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值