<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
//数组判断是否含有某个元素
Array.prototype.contains = function (obj) {
var i = this.length;
while (i--) {
if (this[i] === obj) {
return true;
}
}
return false;
}
//数组去重
Array.prototype.uniquelize = function() {
var ra = new Array();
for(var i = 0; i < this.length; i ++){
if(!ra.contains(this[i])){
ra.push(this[i]);
}
}
return ra;
};
//交集
Array.prototype.jiaoji = function(obj) {
return this.uniquelize().filter(function(o){
return obj.contains(o) ? o : null;
});
};
//差集
Array.prototype.minus = function(obj){
return this.uniquelize().filter(function(o){
return obj.contains(o) ? null : o
});
};
//并集
Array.prototype.bingji = function(obj) {
return this.concat(obj).uniquelize();
};
let arr1=new Array();
let arr2=new Array();
arr1=[1,2,2,3,3,4,4,5,6,7,8,9];
arr2=[1,3,5,7,9];
document.write('数组1---->'+arr1+'<br>数组2---->'+arr2);
document.write('<br>');
document.write('交集是:'+arr1.jiaoji(arr2));
document.write('<br>');
document.write('差集是:'+arr1.minus(arr2));
document.write('<br>');
document.write('并集是:'+arr1.bingji(arr2));
document.write('<br>');
</script>
</body>
</html>
临时写,有问题可以交流,对于 其他的 余集 补集 合集 懒得区分了 上面三种挺常用的,仅供参考。
参照 这篇文章 其实也有其他比较好的实现方法 https://segmentfault.com/q/10...
之前都没有注意到includes这个方法,参考 https://developer.mozilla.org... ,可以直接实现判断当前数组是否包含某指定的值。 其实我觉得我写的contains 相当于 includes函数 ,会后我再看看
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。