JavaScript
Map, Set
차돌박이츄베릅
2023. 5. 24. 15:47
Map, Set은 두 가지 다른 유형의 자료 구조.
Map은 키-값 쌍을 저장하는 객체와 비슷
Set은 고유한 값을 저장하는 자료 구조
Map, Set은 모두 값 추가, 검색, 삭제 및 모든 값 제거를 수행할 수 있으며,
데이터의 구성, 검색 및 사용을 객체나 배열보다 효율적으로 처리할 수 있음
Map
- 각 쌍의 키와 값을 저장
- 객체와 달리 키로 사용할 수 있는 모든 유형을 사용할 수 있음 (?)
- 키가 정렬된 순서로 저장되기 때문에, 추가한 순서대로 반복할 필요가 없다 (?)
// Map() 생성자를 사용하여 새로운 Map을 만듦
const myMap = new Map();
// set() 메소드를 사용하여 Map에 값을 추가
myMap.set('key', 'value');
myMap.set('one', 1);
myMap.set('two', 2);
myMap.set('three', 3);
// get() 메소드를 사용하여 Map에 값을 검색
console.log(myMap.get('key')); // 'value' 출력
// keys(), values(), entries() 메소드를 사용하여 키, 값 및 키-값 쌍을 iterator형태로 반환함
for (const key of myMap.keys()) {
console.log(key);
}
for (const value of myMap.values()) {
console.log(value);
}
for (const entry of myMap.entries()) {
console.log(`${entry[0]}: ${entry[1]}`);
}
// size 속성을 사용하여 Map의 크기를 확인
console.log(myMap.size); // 4 출력
// has() 메소드를 사용하여 특정 키가 Map에 존재하는지 여부 확인
console.log(myMap.has('two')); // true 출력
Set
- Set은 값만 저장하며, 키를 저장하지 않습니다.
- 값이 중복되지 않는 유일한 요소로만 구성됨
// Set() 생성자를 사용하여 새로운 Set을 만듦
const mySet = new Set();
// add() 메소드를 사용하여 Set에 값을 추가
mySet.add('value1');
mySet.add('value2');
mySet.add('value3');
// has() 메소드를 사용하여 Set에 값을 검색
console.log(mySet.has('value1')); // true 출력
// values() 메소드 사용하여 값을 iterator값으로 반환함
for (const value of mySet.values()) {
console.log(value);
}
// size 속성을 사용하여 Set의 크기를 확인
console.log(mySet.size); // 3 출력
// has() 메소드를 사용하여 특정 값이 Set에 존재하는지 여부 확인
console.log(mySet.has('value2')); // true 출력