/ Gists / JavaScript Union, Intersection, and Difference With ES6 Set
On gists

JavaScript Union, Intersection, and Difference With ES6 Set

JavaScript ES 6

demo.js Raw #

/* 
https://medium.com/just-javascript-tutorials/javascript-union-intersection-and-difference-with-es6-set-13b953b21f62
*/

const setA = new Set(['🌞', '🌝', '🌎']);
const setB = new Set(['🌎', '🚀', '👩‍🚀']);

const union = new Set([...setA, ...setB]);
console.log(union); // Set(5) { '🌞', '🌝', '🌎', '🚀', '👩‍🚀' }

const intersection = new Set([...setA].filter((x) => setB.has(x)));
console.log(intersection); // Set(1) { '🌎' }

const difference = new Set([...setA].filter((x) => !setB.has(x)));
console.log(difference); // Set(2) { '🌞', '🌝' }

demo2.js Raw #

//  https://medium.com/@alvaro.saburido/set-theory-for-arrays-in-es6-eb2f20a61848

arrA=[1,3,4,5]
arrB=[1,2,5,6,7]


let intersection = arrA.filter(x => arrB.includes(x)); // [1,5]
let difference = arrA.filter(x => !arrB.includes(x)); // [3,4]

// symetrical diff [2,3,4,6,7]
let difference = arrA
                 .filter(x => !arrB.includes(x))
                 .concat(arrB.filter(x => !arrA.includes(x)));
                 
                 
let union = [...new Set([...arrA, ...arrB)]; // [1,2,3,4,5,6,7]