Simplest code for array intersection in javascript

data-structures, intersection, javascript

Solution

Use a combination of `Array.prototype.filter` and `Array.prototype.includes`:

const filteredArray = array1.filter(value => array2.includes(value));

For older browsers, with `Array.prototype.indexOf` and without an arrow function:

var filteredArray = array1.filter(function(n) {
    return array2.indexOf(n) !== -1;
});

NB! Both `.includes` and `.indexOf` internally compares elements in the array by using `===`, so if the array contains objects it will only compare object references (not their content). If you want to specify your own comparison logic, use `Array.prototype.some` instead.

Problem

What's the simplest, library-free code for implementing array intersections in javascript? I want to write ``` intersection([1,2,3], [2,3,4,5]) ``` and get ``` [2, 3] ```

Original source

Related problems