js-fns
Version:
Modern JavaScript utility library focused on the build size
52 lines (45 loc) • 896 B
JavaScript
/**
* @internal
*/
/**
* @internal
*/
/**
* @internal
*/
/**
* @internal
*/
/**
* Creates an array with elements present in all given arrays.
*
* @param arrays - The array of arrays of elements to get elements from
* @returns An array with elements present in all given arrays
*
* @public
*/
/**
* @category Array
* @internal
*/
export default function intersection() {
for (
var _len = arguments.length, arrays = new Array(_len), _key = 0;
_key < _len;
_key++
) {
arrays[_key] = arguments[_key]
}
var sets = arrays.map(function (array) {
return new Set(array)
})
var biggestArray = arrays.sort(function (a, b) {
return a.length - b.length
})[0]
if (!biggestArray || !biggestArray.length) return []
return biggestArray.filter(function (element) {
return sets.every(function (set) {
return set.has(element)
})
})
}