Home Map, Set
Post
X

Map, Set

ES6에 등장한 자료구조인 Map 과 Set 객체에 대해 알아보자.


Map

Map 객체는 Key-Value 쌍과 Key의 원래 삽입 순서를 기억합니다.

모든 값(객체 및 원시 값 모두)은 Key 또는 Value으로 사용될 수 있습니다.

객체와 유사하지만, Map은 Key에 다양한 자료형을 허용합니다.

즉, Key를 문자형으로 변환하지 않습니다.

  • 객체를 Key로 사용하는 예시

    1
    2
    3
    4
    5
    6
    7
    8
    
    let john = { name: "John" };
    
    let map = new Map();
    
    map.set(john, 123);
    
    console.log(map.get(john)); // 123
    console.log(typeof john); // object
    

Method & Property

  • new Map()

    Map 생성자

  • map.set(key, value)

    key를 이용해 value를 저장합니다.

    반환값은 자기 자신(map 객체)

  • map.get(key)

    key에 해당하는 값을 반환합니다.

    key가 존재하지 않으면 undefined를 반환합니다.

  • map.has(key)

    key가 존재하면 true, 존재하지 않으면 false를 반환합니다.

  • map.delete(key)

    key에 해당하는 값을 삭제합니다.

    반환값은 성공 시 true, 실패 시 false

  • map.clear()

    모든 요소를 제거합니다. 반환값은 undefined.

  • map.size

    요소의 개수를 반환합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const map1 = new Map();

map1.set("bar", "foo");

console.log(map1.get("bar")); // foo

console.log(map1.has("bar")); // true

console.log(map1.delete("bar")); // true

console.log(map1.size); // 2

map1.clear();

console.log(map1.size); // 0

Set

Set 객체는 자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있습니다.

즉, 중복을 허용하지 않는 값을 모아놓은 특별한 컬렉션입니다.

Set은 배열처럼 키가 없는 값이 저장됩니다.


Method & Property

  • new Set(iterable)

    Set 생성자입니다.

    iterable 객체를 전달받아 그 안의 값을 복사해 Set에 넣어줍니다.

  • set.add(value)

    값을 추가합니다.

    반환값은 Set 자신

  • set.has(value)

    값이 존재하는지 확인합니다.

    반환값은 성공 시 true, 실패 시 false

  • set.delete(value)

    값을 제거합니다.

    반환값은 성공 시 true, 실패 시 false

  • set.clear()

    모든 요소를 제거합니다.

    반환값은 undefined.

  • set.size

    요소의 개수를 반환합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const set = new Set([1, 2, 3]);

console.log(set.has(1)); // true

console.log(set.size); // 3

set.add(4);

console.log(set.size); // 4

set.delete(4);

console.log(set.size); // 3

set.clear();

console.log(set.size); // 0
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.