typescript / intermediate
Snippet
Array-Duplikate-Entfernung nach Eigenschaftsschlüssel mittels Set-Lookups
Das Entfernen von Duplikaten in Objekt-Arrays mit verschachtelten findIndex-Aufrufen führt zu quadratischer O(n^2) Laufzeit. Ein Set zur Verfolgung von Schlüssel-Projektionen erreicht eine optimale lineare O(n) Ausführungszeit.
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;});}
Erklärung
1
const seen = new Set<K>();
Erstellt ein Set zur Speicherung von Schlüsseln mit O(1) Nachschlagezeit.
2
if (seen.has(key)) return false;
Filtert Duplikate effizient heraus, bevor neue Schlüssel hinzugefügt werden.