js-set-map-lookups
Use Set and Map for O(1) membership lookups instead of array.includes(). Apply when checking membership repeatedly or performing frequent lookups against a collection.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Use Set and Map for O(1) membership lookups instead of array.includes(). Apply when checking membership repeatedly or performing frequent lookups against a collection.
How to use
Zidentyfikuj miejsce w kodzie, gdzie używasz array.includes() w pętli lub powtarzających się sprawdzeniach – np. filtrowanie elementów po ID czy walidacja uprawnień.
Zamień deklarację tablicy na Set, opakowując dane konstruktorem new Set(). Na przykład zamiast const allowedIds = ['a', 'b', 'c'] napisz const allowedIds = new Set(['a', 'b', 'c']).
Zastąp metodę includes() metodą has() – zmień allowedIds.includes(item.id) na allowedIds.has(item.id). Obie zwracają boolean, ale has() działa w stałym czasie O(1).
Jeśli pracujesz z parami klucz-wartość (a nie tylko listą wartości), użyj Map zamiast Set – new Map() pozwala przechowywać i wyszukiwać powiązane dane efektywnie.
Przetestuj zmianę – wynik logiki powinien być identyczny, ale operacja będzie znacznie szybsza na dużych kolekcjach. Zwróć uwagę na różnicę wydajności przy setach zawierających tysiące elementów.