@prelude/array
Version:
Array module.
12 lines (10 loc) • 330 B
text/typescript
/** @returns unique array. */
const unique =
<T, R extends boolean | number | symbol | string>(values: T[], keyOfValue: (value: T) => R): T[] => {
const seen = new Set<R>()
return values.filter(_ => {
const k = keyOfValue(_)
return seen.has(k) ? false : (seen.add(k), true)
})
}
export default unique