intersection Returns the elements that exist in both arrays, filtering duplicate values. Create a Set from b, then use Array.prototype.filter() on a to only keep values contained in b. const intersection = (a, b) => { const s = new Set(b); return [...new Set(a)].filter(x => s.has(x)); }; intersection([1, 2, 3], [4, 3, 2]); // [2, 3]