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"}