I have an array like this
arrays = [
['a', 'b', 'c', 'd'],
['a', 'b', 'c', 'g'],
['a', 'b', 'c', 'g', 'x'],
]
I need to form one array of all intersection. Like this.
function get_intersects(arrays) {
// return all intersections
return ['a', 'b', 'c', 'g'];
}
notice how g is returned even though it is not in all three but it is in at least 2 of them.
This is my attempt but the g is missing.
arrays = [
['a', 'b', 'c', 'd'],
['a', 'b', 'c', 'g'],
['a', 'b', 'c', 'g', 'x'],
]
function get_intersects(arrays) {
return arrays.shift().filter(function (v) {
return arrays.every((a) => a.indexOf(v) !== -1 );
});
}
console.log(get_intersects(arrays))
gis returned when only in two... what's the actual requirement? An intersection in ANY two arrays? And should the solution support an arbitrary number of arrays?