ES6 Set, Map


ES6에 도입된 새로운 데이터 타입인 Set, Map에 대해 알아봅니다.

Set - 집합

let s = new Set();

// add() - Set에 요소 추가
s.add("hello").add("world").add("foo");
s.size === 2;

// has() - Set 요소 확인
s.has("hello") === true;

// Set 요소 순환
for (let key of s.values())
  console.log(key)


// 집합 연산
var john = new Set(['Apple', 'Mango']);
var susan = new Set(['Kiwi', 'Mango']);

// 합집합
var union = new Set([...john.values(), ...susan.values()]);
console.log('union ', union);

// 교집합
var inter = new Set([...john.values()].filter(e => susan.has(e)));
console.log('inter ', inter);

// 차집합
var diff = new Set([...john.values()].filter(e => !susan.has(e)));
console.log('diff ', diff);

Map - 키-값 쌍

let map = new Map();
let sym = Symbol();

map.set("hello", 42);
map.set(sym, 34);

map.get(sym) === 34;
map.size === 2;

for (let [key, val] of map.entries())
  console.log(key, " = ", val)


// 예제
let teams = new Map();

// set()
teams.set('LG', 'Twins');
teams.set('NC', 'Dynos');
teams.set('Kia', 'Tigers');
teams.set('Lotte', 'Giants');

// has()
console.log(teams.has('SK'));  // false

// get()
console.log(teams.get('LG'));  // Twins
console.log(teams);  // Map(4) {"LG" => "Twins", "NC" => "Dynos", "Kia" => "Tigers", "Lotte" => "Giants"}
SHARE