typescript / intermediate
Snippet
Array Deduplication by Property Key via Set Lookups
Deduplicating arrays of objects using nested findIndex calls leads to quadratic O(n^2) performance. Utilizing a Set to track projected property keys achieves optimal linear O(n) execution time.
snippet.ts
typescript
1
2
3
4
5
6
7
8
9
function distinctBy<T, K>(items: T[], selector: (item: T) => K): T[] {const seen = new Set<K>();return items.filter((item) => {const key = selector(item);if (seen.has(key)) return false;seen.add(key);return true;});}
Breakdown
1
const seen = new Set<K>();
Instantiates a Set data structure to hold key representations with O(1) membership checks.
2
if (seen.has(key)) return false;
Rejects duplicates efficiently before adding new keys to the set.