Index
1. Map
1.1 Map 이란?
Map 객체는 키-값 쌍을 가지는 객체 자료형의 한 종류입니다.
let m = new Map(); // Map에 값을 넣기 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); // let mm = new Map() // mm.set('하나', m) // Map(1) {'하나' => Map(3)} // mm.set('하나', {'one':1, 'two':2}) // Map(1) {'하나' => {…}}
1.2 Map 의 여러가지 활용법
// Map의 순환 for (var variable of m) { console.log(`m을 순회하고 있습니다. ${variable[0]}`) console.log(`m을 순회하고 있습니다. ${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);
1.3 Map 과 Object의 차이
Map 객체와 Object 는 둘 다 key - value 관계를 가진다는 점에서 비슷해보이지만 몇 가지 중요한 차이점이 있습니다
- Object의 키는 문자열 타입으로만 지정해야하지만, Map의 키는 모든 값을 가질 수 있습니다.
- Object는 크기를 사용자가 직접 수동으로 알아내야 하지만, Map은 size를 통해 크기를 쉽게 얻을 수 있습니다.
objMap = new Map(); objMap.set('one', 1); objMap.set('two', 2); objMap.set('three', 3); console.log(objMap.size); // 3 obj = {hi : 1, hi2 : 2, hi3 :3, hi4: 4}; console.log(obj.length); // undefined console.log(obj.size); // undefined
- Map은 데이터를 추가하거나 제거하는 작업에서 Object 보다 더 나은 성능을 보입니다.
2. Set
2.1 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 = new Set([...a].filter(x => !b.has(x)));