function union(a, b) {
var tmp={}, res=[];
for(var i=0;i<a.length;i++) tmp[a[i]]=1;
for(var i=0;i<b.length;i++) tmp[b[i]]=1;
for(var k in tmp) res.push(k);
return res;
}
function intersect(a, b) {
var tmp={}, res=[];
for(var i=0;i<a.length;i++) tmp[a[i]]=1;
for(var i=0;i<b.length;i++) if(tmp[b[i]]) res.push(b[i]);
return res;
}
function array_diff(a, b) {
var tmp={}, res=[];
for(var i=0;i<a.length;i++) tmp[a[i]]=1;
for(var i=0;i<b.length;i++) { if(tmp[b[i]]) delete tmp[b[i]]; }
for(var k in tmp) res.push(k);
return res;
}
function sym_diff(a, b) {
var tmp={}, res=[];
for(var i=0;i<a.length;i++) tmp[a[i]]=1;
for(var i=0;i<b.length;i++) { if(tmp[b[i]]) delete tmp[b[i]]; else tmp[b[i]]=1; }
for(var k in tmp) res.push(k);
return res;
}
var arr1 = ['A', 'B', 'C', 'D'];
var arr2 = ['C', 'D', 'E', 'F'];
// Union
console.log( union(arr1, arr2) );
// ["A", "B", "C", "D", "E", "F"]
// Intersection
console.log( intersect(arr1, arr2) );
// ["C", "D"]
// Complement
console.log( array_diff(arr1, arr2) );
// ["A", "B"]
// Symmetric difference
console.log( sym_diff(arr1, arr2) );
// ["A", "B", "E", "F"]