js 数组的差集_JavaScript数组功能扩展--差集,并集,合集,去重

//数组功能扩展

Array.prototype.each = function(fn){

fn = fn || Function.K;

var a = [];

var args = Array.prototype.slice.call(arguments, 1);

for(var i = 0; i 

var res = fn.apply(this,[this[i],i].concat(args));

if(res != null) a.push(res);

}

return a;

};

//数组是否包含指定元素

Array.prototype.contains = function(suArr){

for(var i = 0; i 

if(this[i] == suArr){

return true;

}

}

return false;

}

//不重复元素构成的数组

Array.prototype.uniquelize = function(){

var ra = new Array();

for(var i = 0; i 

if(!ra.contains(this[i])){

ra.push(this[i]);

}

}

return ra;

};

//两个数组的补集

Array.complement = function(a, b){

return Array.minus(Array.union(a, b),Array.intersect(a, b));

};

//两个数组的交集

Array.intersect = function(a, b){

return a.uniquelize().each(function(o){return b.contains(o) ? o : null});

};

//两个数组的差集

Array.minus = function(a, b){

return a.uniquelize().each(function(o){return b.contains(o) ? null : o});

};

//两个数组并集

Array.union = function(a, b){

return a.concat(b).uniquelize();

};

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值