数组的交集、并集……
2017-08-03 11:16
218 查看
1.集合之间的交集:
Array.intersect =
function () {
var result = new
Array();
var obj =
{};
for (var
i = 0; i
< arguments.length; i++) {
for (var
j = 0; j
< arguments[i].length; j++) {
var str
= arguments[i][j];
if (!obj[str]) {
obj[str] = 1;
}
else {
obj[str]++;
if (obj[str]
== arguments.length)
{
result.push(str);
}
}//end else
}//end for j
}//end for i
return
result;
}
console.log(Array.intersect(['1','2'],['3','2','4']))//["2"];
2.集合之间的并集:
Array.union =
function () {
var arr = new
Array();
var obj =
{};
for (var
i = 0; i
< arguments.length; i++) {
for (var
j = 0; j
< arguments[i].length; j++)
{
var str=arguments[i][j];
if (!obj[str])
{
obj[str] = 1;
arr.push(str);
}
}//end for j
}//end for i
return arr;
}
console.log(Array.union(["1",
"2",
"3"], ["2",
"3",
"4",
"5",
"6"]))//["1","2", "3", "4", "5", "6"]
3.集合去掉重复元素
Array.prototype.uniquelize =
function () {
var tmp =
{},
ret = [];
for (var
i = 0, j
= this.length; i
< j; i++) {
if (!tmp[this[i]]) {
tmp[this[i]]
= 1;
ret.push(this[i]);
}
}
return ret;
}
console.log([1,
2,
3,
2,
3,
4,
5,
6].uniquelize())//[1,2,3,4,5,6]
4.2个集合之间的差集
Array.prototype.minus =
function (arr) {
var result = new
Array();
var obj =
{};
for (var
i = 0; i
< arr.length; i++) {
obj[arr[i]] = 1;
}
for (var
j = 0; j
< this.length; j++) {
if (!obj[this[j]])
{
obj[this[j]]
= 1;
result.push(this[j]);
}
}
return result;
};
console.log(["2",
"3",
"5",
"6"].minus(["1",
"2",
"3"]))//["5", "6"]
Array.intersect =
function () {
var result = new
Array();
var obj =
{};
for (var
i = 0; i
< arguments.length; i++) {
for (var
j = 0; j
< arguments[i].length; j++) {
var str
= arguments[i][j];
if (!obj[str]) {
obj[str] = 1;
}
else {
obj[str]++;
if (obj[str]
== arguments.length)
{
result.push(str);
}
}//end else
}//end for j
}//end for i
return
result;
}
console.log(Array.intersect(['1','2'],['3','2','4']))//["2"];
2.集合之间的并集:
Array.union =
function () {
var arr = new
Array();
var obj =
{};
for (var
i = 0; i
< arguments.length; i++) {
for (var
j = 0; j
< arguments[i].length; j++)
{
var str=arguments[i][j];
if (!obj[str])
{
obj[str] = 1;
arr.push(str);
}
}//end for j
}//end for i
return arr;
}
console.log(Array.union(["1",
"2",
"3"], ["2",
"3",
"4",
"5",
"6"]))//["1","2", "3", "4", "5", "6"]
3.集合去掉重复元素
Array.prototype.uniquelize =
function () {
var tmp =
{},
ret = [];
for (var
i = 0, j
= this.length; i
< j; i++) {
if (!tmp[this[i]]) {
tmp[this[i]]
= 1;
ret.push(this[i]);
}
}
return ret;
}
console.log([1,
2,
3,
2,
3,
4,
5,
6].uniquelize())//[1,2,3,4,5,6]
4.2个集合之间的差集
Array.prototype.minus =
function (arr) {
var result = new
Array();
var obj =
{};
for (var
i = 0; i
< arr.length; i++) {
obj[arr[i]] = 1;
}
for (var
j = 0; j
< this.length; j++) {
if (!obj[this[j]])
{
obj[this[j]]
= 1;
result.push(this[j]);
}
}
return result;
};
console.log(["2",
"3",
"5",
"6"].minus(["1",
"2",
"3"]))//["5", "6"]
相关文章推荐
- 算法兴趣-----求两个已排序数组的交集和并集(算法复杂度O(N+M))
- 如何用C#求两数组的交集和并集
- Java实现数组的交集、并集、差集
- 求两个数组的交集和并集
- C#最简易版求数组和datatable的并集交集差集
- 求两个数组的交集、并集和差集算法分析与实现(转自http://blog.sina.com.cn/s/blog_616e189f0100mrdn.html)
- Linq 数据操作,两个数组求差、交集、并集
- python 获得两个数组(List)交集、并集与差集
- js取两个数组的交集|差集|并集|补集|去重示例代码
- js取数组两个数组的交集|差集|并集|补集|去重
- c#数组的交集,差集,并集
- ES6使用Set数据结构实现数组的交集、并集、差集功能示例
- 算法5:求两个已排序数组的交集和并集
- 【python】集合操作set函数去重与集合、数组、元组中交集(intersection)、并集(union)、差集(difference)、对称差集(sysmmetric difference)
- 怎样对数组进行交集与并集运算
- 求两个升序数组的交集、并集、补集
- 【转】 js数组 Array 交集 并集 差集 去重
- Java学习之训练---求数组的交集、并集以及只在A数组中出现的子串集合
- 数组--清除相同,并集和交集