js-fns
Version:
Modern JavaScript utility library focused on the build size
36 lines (29 loc) • 818 B
JavaScript
exports.default = union
/**
* Creates a new array with all unique elements from the given arrays.
*
* @param arrays - The array of arrays of elements to get unique elements from
* @returns An array with all unique elements from the given arrays
*
* @category Array
* @public
*/
function union() {
var uniqueSet = new Set()
var result = []
for (var arrayIndex = 0; arrayIndex < arguments.length; arrayIndex++) {
var array =
arrayIndex < 0 || arguments.length <= arrayIndex
? undefined
: arguments[arrayIndex]
for (var elementIndex = 0; elementIndex < array.length; elementIndex++) {
var element = array[elementIndex]
if (!uniqueSet.has(element)) {
uniqueSet.add(element)
result.push(element)
}
}
}
return result
}