Operate on arrays as though they are enumerable sets.
function objectify(array) {
Make an object in which the keys are the elements of an array.
const objectification = Object.create(null); array.forEach(function (element) { objectification[element] = true; }); return objectification; } export default Object.freeze({ union: function (the_zeroth_set, the_wunth_set) {
Make the union of two arrays of strings.
return Object.keys( Object.assign( objectify(the_zeroth_set), objectify(the_wunth_set) ) ); }, intersection: function (the_zeroth_set, the_wunth_set) {
Make the intersection of two arrays of strings.
const the_objectified_wunth = objectify(the_wunth_set); return the_zeroth_set.filter( function (element) { return the_objectified_wunth[element] !== undefined; } ); }, difference: function (the_zeroth_set, the_wunth_set) {
Make the difference of two arrays of strings.
const the_objectified_wunth = objectify(the_wunth_set); return the_zeroth_set.filter( function (element) { return the_objectified_wunth[element] === undefined; } ); } });