Array Intersect
Single dimensional array intersection function.
HTML
<div id="tests"></div>
CSS
.blue {
color: #33f;
}
.red {
color: #f33;
}
JavaScript
(function() {
function arrayIntersect() {
var tmpArray = [];
var intersect = [];
var args = [];
if(arguments.length > 1) {
args = [arguments];
} else {
args = arguments;
}
if(args[0].length < 1) {
intersect = "No intersection";
} else if(args[0].length === 1) {
intersect = args[0][0];
} else {
for(var i=0; i<args[0].length; i++) {
if(typeof args[0][i+1] !== 'undefined') {
tmpArray.push(getIntersect(args[0][i],args[0][i+1]));
}
}
intersect = arrayIntersect(tmpArray);
}
function getIntersect(a,b) {
var innersek = [];
for(var i=0; i<a.length; i++) {
for(var j=0; j<b.length; j++) {
if(a[i]===b[j]/*teehee*/) {
innersek.push(a[i]);
}
}
}
return innersek;
}
return intersect;
}
//test setup
var test1 = ['red','green','blue','yellow','mauve'];
var test2 = ['orange','blue','red','mauve'];
var result = arrayIntersect(test1,test2,test3,test4,test5);
var str = document.getElementById('tests').innerHTML = test1 + '<br>' + test2;
var output;
for(var i=0; i<result.length; i++) {
var find = result[i];
var replace = new RegExp(find, 'g');
output = str.replace(replace, '<span class="'+result[i]+'">'+result[i]+'</span>');
str = output;
}
document.getElementById('tests').innerHTML = output;
})();