- Firefox 127부터 대부분의 주요 브라우저 엔진에서 새로운
Set
메서드들을 사용할 수 있게 되어, Polyfill 없이도 어디서나 이 메서드들을 사용 가능
- 중복 제거, 비교, 교집합, 차집합, 부분집합 등에 최적화된 방법을 제공하므로 직접 구현할 필요가 없어짐
- 대용량 데이터에서 Array에 비해 성능 측면에서 이점이 있음 (순서가 보장되지 않는 점에 유의만 하면)
- 새
Set
메소드들: intersection()
, union()
, difference()
, symmetricDifference()
, isSubsetOf()
, isSupersetOf()
, isDisjointFrom()
여부를 나타내는 불리언 값 반환
JavaScript의 Set
이란?
-
Set
은 Array와 유사하지만, 각 값은 한 번만 저장될 수 있음
-
Set
은 고유한 컬렉션을 만드는 내장된 방법을 제공해주어 편리함
- Array에 비해
Set
에서 요소가 있는지 확인하는 것이 일반적으로 더 빠름
두 집합의 합집합
-
union
메서드를 사용하면 '둘 중 하나 또는 둘 다'에 있는 요소들을 확인할 수 있음
- 중복을 제거하고, 비교를 수행하기 위한 사용자 지정 구현이 필요하지 않음
집합의 교집합
-
intersection
메서드를 사용하면 두 집합에서 겹치는 요소를 확인할 수 있음
- '두 집합 모두에만' 있는 요소들을 강조 표시하는 데 사용할 수 있음
집합의 대칭 차집합
-
symmetricDifference
메서드는 어느 한 집합에는 있지만 '둘 다'에는 없는 요소들을 확인할 수 있게 해줌
-
symmetricDifference
는 intersection
의 반대 논리 연산을 수행함
집합의 차집합
-
difference
메서드를 사용하면 한 집합에는 있지만 다른 집합에는 없는 요소들을 확인할 수 있음
- 다른 목록에 나타나지 않는 목록 항목을 강조 표시하는 데
difference
로 만든 집합을 사용할 수 있음
부분집합, 상위집합, 서로소
-
isSubsetOf()
와 isSupersetOf()
메서드는 새로운 집합을 반환하는 것이 아니라 특정 상태나 논리적 검사를 나타내는 불리언 값을 반환함
-
isDisjointFrom()
메서드를 사용하면 두 집합이 공통 요소가 없는지 확인할 수 있음
요약
-
Set
메서드들이 흥미롭고 이해하기에 좋은 개념이라고 생각함
- 이 메서드들을 실제 예제에서 다른 방식으로 사용하는 방법에 대해 알려주길 바람
- 다음 프로젝트를 위해
Set
메서드들을 잘 활용할 수 있길 바람