https://medium.com/better-programming/array-intersection-difference-and-union-with-javascript-es7-51d5ae1763b9