注册 登录
编程论坛 JavaScript论坛

数组的集合运算

leeqihero 发布于 2019-03-19 14:43, 2058 次点击
给定两个数组,比如a=[1,2,3,4,5],b=[3,5,6,7,8]
求a与b的并集[1,2,3,4,5,6,7,8]
求a与b的交集[3,5]
求差集a-b=[1,2,4],b-a=[6,7,8]
3 回复
#2
leeqihero2019-03-19 14:47
如果给定的数组有重复的元素,首先要去除重,再做集合运算。用javascript写出来。
#3
leeqihero2019-03-20 16:09
程序代码:
set={
    uniq:function(s){//去重
        var r=[];
        for(var i=0;i<s.length;i++){
            if(s.indexOf(s[i])==i) r.push(s[i]);
        };
        return r;
    },
    d:function(s1,s2){//差集
        var b=this.uniq(s1);
        var a=this.uniq(s2);
        return b.filter(v => !a.includes(v));
    },
    u:function(s1,s2){//并集
        var b=this.uniq(s1);
        var a=this.uniq(s2);
        return this.uniq(a.concat(b));
    },
    n:function(s1,s2){//交集
        var b=this.uniq(s1);
        var a=this.uniq(s2);
        return b.filter(v => a.includes(v));
    },
    in:function(s1,s2){//是否是子集
        var b=this.uniq(s1);
        var a=this.uniq(s2);
        var c=this.n(b,a);
        return b.length==c.length;
    }
};

只有本站会员才能查看附件,请 登录
#4
dog8522858002019-05-03 21:18
推荐大家一个靠谱的论文检测平台。重复的部分有详细出处以及具体修改意见,能直接在文章上做修改,全部改完一键下载就搞定了。怕麻烦的话,还能用它自带的降重功能。哦对了,他们现在正在做毕业季活动, 赠送很多免费字数,可以说是十分划算了!地址是:http://www.
1