Map
- Key, Value을 한 쌍으로 저장
- Map은 Key가 정렬된 순서로 저장되기 때문
- 기능: 검색, 삭제, 제거, 여부 확인
- Key에 어떤 유형의 데이터 타입이 다 들어올 수 있다.
const myMap = new Map();
// Map 값을 추가할 때 항상 set을 사용해야 함
myMap.set('key', 'value');
// get을 통해 검색
myMap.get('key');
- 대량의 데이터를 처리하기 위함이기 때문에 반복적인 부분이 중요함
- method: keys, values, entries
// Map 생성
const myMap = new Map();
// myMap에 set으로 데이터 저장
myMap.set('one', 1);
myMap.set('two', 2);
myMap.set('three', 3);
console.log(myMap.keys()); // [Map Iterator] { 'one', 'two', 'three' }
// 기본 문법
// for (const 변수명 of myMap.keys()) {
// console.log(변수명);
// }
for (const key of myMap.keys()) {
console.log(key);
}
for (const value of myMap.values()) {
console.log(value);
}
// 배열로로 묶어서 전체를 Iterator로 감싸서 출력함
console.log(myMap.entries()); // [Map Entries] { [ 'one', 1 ], [ 'two', 2 ], [ 'three', 3 ] }
for (const entry of myMap.entries()) {
console.log(`${entry[0]}: ${entry[1]}`);
}
console.log(myMap.size); // 3 출력
- Map에 특정 key가 존재하는지 여부 확인 (true or false)
console.log(myMap.has('two')); // true 출력
Set
- 고유한 값을 저장하는 자료 구조
- 값(value)만 저장한다.
- key를 저장하지는 않는다.
- 값이 중복되지 않는 유일한 요소로만 구성된다.
- 값 추가, 검색, 값 삭제, 모든 값 제거, 존재 여부 확인
// Set 생성
const mySet = new Set();
// 추가
mySet.add("value1");
mySet.add("value2");
mySet.add("value2"); // 중복된 값은 추가 되지 않음
mySet.add("value3");
mySet.add("value5");
mySet.add("value8");
// Set의 사이즈(길이) 확인
console.log(mySet.size); // 6이 아닌 5
// Set에 특정 값이 존재하는지 여부 확인
console.log(mySet.has("value1")); // true
console.log(mySet.has("value2")); // ture
console.log(mySet.has("value3")); // false
// Iterator 반복
for (const value of mySet.values()) {
console.log(value);
}