1. new Map()
맵 생성
// Map() 생성
let map = new Map();
//데이터 저장
map.set(key, value);
//데이터 값 호출 - key에 해당하는 값이 없으면 undefined 반환
map.get(key);
//데이터 유무검사 - key가 존재하면 true, 없으면 false
map.has(key);
//데이터 삭제 - key에 해당하는 값 삭제
map.delete(key);
//데이터 모두 삭제
map.clear();
//맵의 요소개수 반환
map.size
2. Map()의 특징
맵은 키가 있는 데이터를 저장한다는 점에서 객체와 유사하지만, 객체가 못하는 키값으로 객체를 쓸 수 있다.
//Map()의 특징 : 객체를 키로 쓸 수 있다.
const obj = {
name: 'tang'
}
let map = new Map(); // Map() 생성
map.set(obj, 123); // key, value 세팅
map.get(obj) // 123
객체를 키로 가져와서 value값인 123을 출력한다.
// 객체에서 key값으로 객체형값을 쓸 경우
const obj = {
name: 'tang'
}
let newObj = {}; // 빈 객체 생성
newObj[obj] = 123; // 새로운 객체에 obj의 value값으로 123 세팅
console.log(newObj["object Object"]); // 123
// 객체의 key자리에 들어가는 값은 모두 문자열로 자동 변환 된다. 따라서 "[object Object]"로 호출해줘야 한다.
3. 객체 -> Map() or Map() -> 객체로 변환하기
Object.entries() 와 Object.fromEntries() 를 사용한다.
// 객체를 Map()으로 변환하기( Object.entries() )
let obj = {
name: 'tang'
}
let map = new Map(Object.entries(obj));
console.log(obj) // [ ['name', 'tang'] ]
console.log(map.get('name')) // 'tang'
// Map()을 객체로 변환하기 ( Object.fromEntries() )
let map = new Map();
map.set('name', 'tang');
map.set('age', 18);
let obj = Object.fromEntries(map); // 객체 변환
console.log(obj) // { name: 'tang', age: 18 }
Object.entries() 는 객체를 key,value 쌍의 배열로,
Object.fromEntries() 는 배열을 key,value 쌍의 객체형태로 변환한다.
'FRONTEND > JavaScript' 카테고리의 다른 글
[JS] FormData() 생성자에 데이터 추가하는 법 (0) | 2022.08.31 |
---|---|
[JS] arr.forEach() 와 arr.map()의 차이점! (0) | 2022.08.27 |
[JS] 버블정렬 알고리즘 오름차순, 내림차순 (0) | 2022.08.25 |
[JS] 문자열을 배열로 바꾸고 공백 제거하기 (+배열 공백제거) (0) | 2022.08.23 |
[JS] 요소.getBoundingClientRect() 메서드 속성 (0) | 2022.08.21 |