@atlaskit/editor-common
Version:
A package that contains common classes and components for editor and renderer
25 lines (24 loc) • 503 B
JavaScript
export function dedupe(list = [], iteratee = p => p) {
/**
.,
. _,'f----.._
|\ ,-'"/ | ,'
|,_ ,--. /
/,-. ,'`. (_
f o| o|__ "`-.
,-._.,--'_ `. _.,-`
`"' ___.,'` j,-'
`-.__.,--'
Gotta go fast!
*/
const seen = new Set();
list.forEach(l => seen.add(iteratee(l)));
return list.filter(l => {
const it = iteratee(l);
if (seen.has(it)) {
seen.delete(it);
return true;
}
return false;
});
}