admin-vben5/packages/@core/shared/toolkit/src/unique.ts

16 lines
427 B
TypeScript
Raw Normal View History

2024-06-23 23:18:55 +08:00
/**
*
* @param arr
* @param key
* @returns
*/
function uniqueByField<T>(arr: T[], key: keyof T): T[] {
const seen = new Map<any, T>();
return arr.filter((item) => {
const value = item[key];
return seen.has(value) ? false : (seen.set(value, item), true);
});
}
export { uniqueByField };