12P by xguru 6일전 | favorite | 댓글 1개
  • Firefox 127부터 대부분의 주요 브라우저 엔진에서 새로운 Set 메서드들을 사용할 수 있게 되어, Polyfill 없이도 어디서나 이 메서드들을 사용 가능
  • 중복 제거, 비교, 교집합, 차집합, 부분집합 등에 최적화된 방법을 제공하므로 직접 구현할 필요가 없어짐
  • 대용량 데이터에서 Array에 비해 성능 측면에서 이점이 있음 (순서가 보장되지 않는 점에 유의만 하면)
  • Set 메소드들: intersection(), union(), difference(), symmetricDifference(), isSubsetOf(), isSupersetOf(), isDisjointFrom()여부를 나타내는 불리언 값 반환

JavaScript의 Set이란?

  • Set은 Array와 유사하지만, 각 값은 한 번만 저장될 수 있음
  • Set은 고유한 컬렉션을 만드는 내장된 방법을 제공해주어 편리함
  • Array에 비해 Set에서 요소가 있는지 확인하는 것이 일반적으로 더 빠름

두 집합의 합집합

  • union 메서드를 사용하면 '둘 중 하나 또는 둘 다'에 있는 요소들을 확인할 수 있음
  • 중복을 제거하고, 비교를 수행하기 위한 사용자 지정 구현이 필요하지 않음

집합의 교집합

  • intersection 메서드를 사용하면 두 집합에서 겹치는 요소를 확인할 수 있음
  • '두 집합 모두에만' 있는 요소들을 강조 표시하는 데 사용할 수 있음

집합의 대칭 차집합

  • symmetricDifference 메서드는 어느 한 집합에는 있지만 '둘 다'에는 없는 요소들을 확인할 수 있게 해줌
  • symmetricDifferenceintersection의 반대 논리 연산을 수행함

집합의 차집합

  • difference 메서드를 사용하면 한 집합에는 있지만 다른 집합에는 없는 요소들을 확인할 수 있음
  • 다른 목록에 나타나지 않는 목록 항목을 강조 표시하는 데 difference로 만든 집합을 사용할 수 있음

부분집합, 상위집합, 서로소

  • isSubsetOf()isSupersetOf() 메서드는 새로운 집합을 반환하는 것이 아니라 특정 상태나 논리적 검사를 나타내는 불리언 값을 반환함
  • isDisjointFrom() 메서드를 사용하면 두 집합이 공통 요소가 없는지 확인할 수 있음

요약

  • Set 메서드들이 흥미롭고 이해하기에 좋은 개념이라고 생각함
  • 이 메서드들을 실제 예제에서 다른 방식으로 사용하는 방법에 대해 알려주길 바람
  • 다음 프로젝트를 위해 Set 메서드들을 잘 활용할 수 있길 바람

더 "집합"스러운 함수가 추가되었군요