자바스크립트 자료형 Set 학습 및 정리하기

    반응형

    코드에 현실 세계를 반영하기 위해서 다양한 자료구조들이 있지만 기존의 것들 만으로는 부족하기 때문에 Map, Set이 추가되었다. 이 Map과 Set은 기존의 자료구조와 비슷한 점이 있으면서도 다른 점이 있다. 기존에 사용하던 객체와 배열로는 구현하기 어려웠던 특정한 기능들 또한 제공한다.

     

    Set


    Set은 중복이 없는 값들의 집합이라고 볼 수 있다. 모든 유형의 고유한 값을 저장할 때 사용한다. Set은 배열과 유사하게 순서를 가지지만 서로 인덱스가 달라 동일한 값을 여러 번 저장할 수 있지만 Set은 중복된 값을 허용하지 않는다.

     

     

     

    1. 특징

    • 각각의 값들은 Set 내에서 한 번만 나타날 수 있다. 즉 유일한 값이다.
    • 데이터의 삽입 순서를 가지고 있다.
    • NaN을 포함한 모든 데이터를 저장할 수 있다.

     

    2. Set 생성하기

    const mySet = new Set();

     

    Set( ) 생성자를 통해 Set을 생성하고 반드시 new 키워드가 있어야 한다. new 키워드가 없다면 타입 에러가 발생한다. 

     

    3. Set 데이터 추가하기

    const mySet = new Set();
    mySet.add(1)
    mySet.add('two')
    mySet.add(3)
    console.log(mySet)
    // Set(3) {1, 'two', 3} 출력

     

    Set( ) 생성자를 통해 Set을 생성하고 add( ) 메서드를 통해 값을 추가할 수 있다. 중복된 값은 허용하지 않고 add( ) 메서드는 데이터를 추가하고 Set을 반환하기 때문에 메소드 체이닝의 형태로 작성할 수 있다.

     

    4. Set 데이터 삭제하기

    const mySet = new Set([1, 'two', 3]);
    mySet.delete(1) // true
    mySet.delete(4) //false

     

    delete( ) 메서드를 통해 Set 데이터를 삭제할 수 있다. 값이 존재해서 삭제에 성공했다면 ture를 값이 없어서 삭제에 실패했다면 false를 반환한다.

     

     

     

    5. 그 외 다양한 메서드

    const mySet = new Set([1, 'two', 3]);
    
    console.log(mySet.has(1)) // true
    console.log(mySet.size) // 요소의 크기 확인 3출력
    console.log(mySet.clear()) // 모든 요소를 삭제

     

    • has(값) : 메서드를 통해 특정한 값이 들어있는지 확인한다. 값이 있다면 true 없다면 false를 반환한다.
    • size : 속성을 통해 요소의 크기를 확인한다.
    • clear( ) : 메서드를 통해 모든 요소를 삭제한다.

     

    6. Set의 반복작업

    const mySet = new Set([1, 'two', 3]);
    
    console.log(mySet.values()) // MapIterator {'one', 'two', 'three'}
    
    for(const values of mySet) {
        console.log(values)
    }

     

    Set은 Map과 마찬가지로 자체적으로 iterable 하기 때문에 반복이 가능하다. 반복작업에 수행되는 메서드는 values( )로 요소의 값을 반복할 수 있는 iterable 한 객체를 반환한다. 배열과 같이 forEach( )를 제공하고 있기에 사용할 수 있다.

     

    중복된 값을 허용하지 않기 때문에 유일한 값들의 컬렉션이 필요할 때 주로 사용할 수 있다.

     

     

     

     

     

    반응형

    댓글