ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2-6 Set 소개 및 예시코드 연습
    JavaScript 문법 종합반 2023. 4. 8. 22:35

    Set
    고유한 값을 저장하는 자료구조다.
    값(밸류)만 저장한다.
    키를 저장하지는 않는다.
    값이 중복되지 않는 유일한 요소로만 구성된다.

    집합을 생각하며 Set을 알아보자.

    Set시작
    const mySet = new Set();

    Set 값 추가
    mySet.add('Value1');
    mySet.add('Value2');

    Set 크기 확인
    conesole.log(mySet.size);
    터미널 결과: 2

    만약 같은 값을 또 추가하고 크기를 확인한다면
    mySet.add('Value1');
    mySet.add('Value2');
    mySet.add('Value2');

    conesole.log(mySet.size);
    터미널 결과:2

    같은 값은 중복으로 인식하므로 Set의 size에는 변화가 없다.

    어떤 값이 존재하는지 확인
    console.log(mySet.has("value1"));
    console.log(mySet.has("value2"));
    console.log(mySet.has("value3"));

    터미널 결과:
    true
    true
    false

    없던 값 value3에 대해서는 false를 내어준다.

    Iterator (반복자) 로 반복시키기
    mySet.add('Value1');
    mySet.add('Value2');
    mySet.add('Value3');
    mySet.add('Value5');
    mySet.add('Value8');

    for(const value of mySet.values) {
      console.log(value)
    }

    터미널 결과:
    Value1
    Value2
    Value3
    Value5
    Value8

    *mdn web docs에서 Set에 대한 자세한 설명을 볼 수 있다.

    Set으로 교집합과 차집합을 흉내낼 수 있다. filter를 이용

    Set 교집합 흉내
    var intersection = new Set([...set1].filter(x => set2.has(x)));

    Set 합집합 흉내
    var difference = new Set([...set1].filter(x => !set2.has(x)));

     

    배운점

    Set은 집합과 같은 개념.

    Map처럼 Iterator (반복자)속성을 가지지만 Set은 값(밸류)만 다룬다는 점에서 차이가 있다.

    때문에 Set은 값 추가, 값 검색, 값 삭제, 모든 값 제거, 존재 여부 확인 등 모두 값에 대해서만 다룬다는 것을 알 수 있다.

    Set은 value의 집합안에서 같은 값이 있다면 중복으로 인식해버린다. 개별적으로 두지 않는다.

    Map과 마찬가지로 Set의 값을 찾아보기로 할 때, has를 사용하며 결과는 불으로 나타낸다.

     

     

Designed by Tistory.