Map & Set

이서림·2024년 7월 30일

JavaScript

목록 보기
22/28

Map

Map이란?

  • 키-값 쌍을 가지는 객체 자료형의 한 종류
let m = new Map();

// Map에 값을 넣기
// set메서드는 m에 값을 넣은 결과를 반환해준다.
m.set('하나', '1');
m.set(1, '하나');
m.set(true, 1);
m.set(false, 0);

// Map의 값에 접근하기
console.log(m.get('하나'));
console.log(m.get(true));

// Map의 값이 있는지 확인하기
console.log(m.has('하나'));

// Map의 값을 제거하기
console.log(m.delete('하나'));
console.log(m.has('하나'));
console.log(m);

// Map의 크기를 확인하기
console.log(m.size);

//Map의 모든 값을 지우기
m.clear()

// let mm = new Map()
// mm.set('하나', m)
// Map(1) {'하나' => Map(3)}
// mm.set('하나', {'one':1, 'two':2})
// Map(1) {'하나' => {…}}

Map의 여러가지 활용법

// Map의 순회
for (const variable of m) {
  console.log(`m을 순회 key : ${variable[0]}`)
  console.log(`m을 순회 value : ${variable[1]}`)
}

// Map의 값에 접근
console.log(m.keys());// 키 가져오기
console.log(m.values());// 값 가져오기
console.log(m.entries());// 키-값 쌍 가져오기

// 인덱스를 가지는 자료형을 맵핑하기
let temp = new Map([[1, 10],
[2, 20],
[3, 30],
[4, 40]]);

console.log(temp);

Map과 Object의 차이는?

  • 공통점: 둘 다 key - value 관계를 가진다는 점
  • 차이점
    • Object의 키는 문자열 타입으로만 지정해야하지만, Map의 키는 모든 값을 가질 수 있음.
    • Object는 크기를 사용자가 직접 수동으로 알아내야 하지만, Map은 size를 통해 크기를 쉽게 얻을 수 있음.
    • Map은 데이터를 추가하거나 제거하는 작업에서 Object 보다 더 나은 성능

Set

Set이란?

  • 모든 타입의 값을 저장하는 객체자료형의 한 종류. 객체 안의 값은 중복을 허용하지 않음.

Set의 여러가지 활용법

let s = new Set('abcdeeeeeeeee');
console.log(s);
console.log(s.size);

// Set에 값을 추가하기
s.add('f');
console.log(s);

// Set을 순환하기
for (var variable of s) {
console.log(variable);
}

// 값이 배열인 경우
let ss = new Set('abcdeeeeeeeee'.split(''));
console.log(ss);

// Set의 값을 제거하기
ss.delete('b');

// Set의 값을 확인하기
console.log(ss.has('a'));

// Set의 모든 값을 제거하기
ss.clear();
console.log(ss);

let a = new Set('abc');
let b = new Set('cde');
// 교집합
let cro = [...a].filter(value => b.has(value));
// 합집합
let union = new Set([...a].concat(...b));
// 차집합
let dif = [...a].filter(x => !b.has(x));

profile
꾸준한 열정으로 나아가는 프론트엔드 개발자

0개의 댓글