uniqueBy

Elimina duplicados de un array basándose en una función selectora de clave.

#array #utility #deduplication
export const uniqueBy = <T, K>(
arr: readonly T[],
getKey: (item: T) => K,
): T[] => {
const map = new Map<K, T>();
for (const item of arr) {
map.set(getKey(item), item);
}
return [...map.values()];
};
// Usage
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice (updated)' },
];
uniqueBy(users, u => u.id);
// [{ id: 1, name: 'Alice (updated)' }, { id: 2, name: 'Bob' }]

Comparte este snippet

Comentarios