- 数组去重
function array_remove_repeat(arr) { // 去重
var result = new Array();
arr.forEach(function(value){
if(result.indexOf(value)==-1) result.push(value);
});
return result;
}
- 数组交集
function array_intersection(arrA, arrB) { // 交集
var result = new Array();
arrA=array_remove_repeat(arrA);
arrB=array_remove_repeat(arrB);
arrA.forEach(function(value){
if(arrB.indexOf(value)>=0) result.push(value);
});
return result;
}
- 数组并集
function array_union(arrA, arrB) { // 并集
var result = new Array();
arrA=array_remove_repeat(arrA);
arrB=array_remove_repeat(arrB);
result = arrB.slice();
arrA.forEach(function(value){
if(arrB.indexOf(value)==-1) result.push(value);
});
return result;
}
或
function array_union(a, b) { // 并集
return array_remove_repeat(a.concat(b));
}
- 数组差集
function array_difference(arrA, arrB) { // 差集
var result = new Array();
arrA=array_remove_repeat(arrA);
arrB=array_remove_repeat(arrB);
arrA.forEach(function(value){
if(arrB.indexOf(value)==-1) result.push(value);
});
return result;
}