Files
vscode-gitlens/src/system/array.ts
2017-03-24 01:40:09 -04:00

14 lines
445 B
TypeScript

'use strict';
export namespace Arrays {
export function uniqueBy<T>(array: T[], accessor: (item: T) => any, predicate?: (item: T) => boolean): T[] {
const uniqueValues = Object.create(null);
return array.filter(_ => {
const value = accessor(_);
if (uniqueValues[value]) return false;
uniqueValues[value] = accessor;
return predicate ? predicate(_) : true;
});
}
}