You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

14 lines
293 B

// @flow
export default function uniqueBy<T>(arr: Array<T>, fn: T => any): Array<T> {
const identifiers = new Set();
return arr.filter(item => {
const identifier = fn(item);
if (!identifiers.has(identifier)) {
identifiers.add(identifier);
return true;
}
});
}