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]