数组的集合运算
给定两个数组,比如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]
程序代码: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;
}
};