Map, Set이란?
데이터의 구성, 검색, 사용을 효율적으로 처리하기 위해 등장한 자료구조
Map
key-value 쌍을 저장한다.
set(), get()
Map에 자료를 추가하고, 검색할 수 있는 메서드
const myMap = new Map();
myMap.set('key', 'value');
myMap.get('key');
keys(), values(), entries()
Map의 데이터들은 반복하며 동작을 처리하기 위해 사용할 수 있음
const myMap = new Map();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.set("three", 3);
console.log(myMap.keys()); // { 'one', 'two', 'three' }
for (const key of myMap.keys()) {
console.log(key);
}
// 아래와같이 출력
// one
// two
// three
for(const value of myMap.values()) {
console.log(value);
}
// 1
// 2
// 3
for(const entry of myMap.entries()) {
console.log(entry);
}
// [ 'one', 1 ]
// [ 'two', 2 ]
// [ 'three', 3 ]
size
map의 길이를 알 수 있다!
console.log(myMap.size); // 3
has()
인자로 넘긴 키를 갖고있는지 확인할 수 있음
console.log(myMap.has("two")); // true
Set
key를 저장하지 않고, 고유한 value만 저장한다. (중복 X)
add()
값을 추가한다. 만약 이미 존재하는 값을 추가하는 경우 추가되지 않는다.
const mySet = new Set();
mySet.add("value1");
mySet.add("value2");
mySet.add("value2");
size
Set의 길이를 알 수 있다.
console.log(mySet.size); // 2, value2가 두번 add되었지만 중복된 값은 추가되지 않기에 길이는 2
has()
인자의 값을 갖고있는지 확인할 수 있다.
console.log(mySet.has("value1"); // true
console.log(mySet.has("value3"); // false
배열에서 중복 요소 제거하기
set의 중복이 불가하다는 특징을 이용해 배열의 중복 요소를 제거할 수 있다.
const numbers = [1, 1, 1, 2, 3];
console.log([...new Set(numbers)]); // [1, 2, 3]
'JavaScript' 카테고리의 다른 글
[JavaScript] 실행 컨텍스트 및 콜스택 (0) | 2024.07.23 |
---|---|
[JavaScript] 깊은 복사와 얕은 복사 (0) | 2024.07.23 |
[JavaScript] 일급 객체로서의 함수 (0) | 2024.07.22 |
[JavaScript] ES6 추가 문법들 (0) | 2024.07.22 |
[JavaScript] 객체 메서드와 객체 비교 (0) | 2024.07.22 |