Node.js examples for Data Structure:Set
Array Set union and intersection
/**/* w w w. j ava2 s.c o m*/ * Retrieve the union set of a bunch of arrays * @param {Array} array1,... the arrays to unify * @return {Array} the union set */ Array.union = function() { var result = []; var map = {}; for (var i=0; i<arguments.length; i+=1) { for (var n in arguments[i]) { var item = arguments[i][n]; if (!map[item]) { result.push(item); map[item] = true; } } } return result; }; /** * Retrieve the intersection set of a bunch of arrays * @param {Array} array1,... the arrays to intersect * @return {Array} the intersection set */ Array.intersection = function() { var all = Array.union.apply(this, arguments); var result = []; for (var n in all) { var chksum = 0; var item = all[n]; for (var i=0; i<arguments.length; i+=1) { if (arguments[i].contains(item)) chksum += 1; else break; } if (chksum == arguments.length) result.push(item); } return result; };