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]
Use a combination of Array.prototype.filter and Array.prototype.includes:
Array.prototype.filter
Array.prototype.includes
const filteredArray = array1.filter(value => array2.includes(value));
For older browsers, with Array.prototype.indexOf and without an arrow function:
Array.prototype.indexOf
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 .some instead.
.includes
.indexOf
===
.some
1.4m articles
1.4m replys
5 comments
57.0k users