Map 객체

Chan·2023년 3월 30일
0

JavaScript

목록 보기
8/9
post-thumbnail

지금 나는 취업준비생이다.
300곳 이상의 공고에 이력서를 넣었고 연락온 곳은 10군데도 되지 않는다.
부트캠프가 끝난지 한 달이 넘었고 곧 두 달이 다 되어간다.
취업 연계를 해주는 것처럼 광고하지만 사이트에 나와 있는 취업공고 사이트는 말그대로 사람인, 원티드, 잡코리아 같은 취업공고 사이트이다.
해당 사이트에 이력서를 넣은 곳에서 연락 온 곳은 한군데뿐이다.
이럴 줄 알고 있었지만 씁쓸한 건 어쩔 수 없다.

어쨌든 원티드에서 지원한 공고 중 코딩테스트가 있는 곳이 2군데가 있어서 알고리즘을 풀고 있는데 완전 초보자인 나는 프로그래머스에 있는 0레벨 조차도 푼다는 것이 너무 어렵다.
다들 많이 풀어보라고 하지만 0레벨조차도 1문제 푸는데 몇 시간이 소요된다.
2주 공부해서 코딩테스트에 합격할 수 있을지는 모르겠지만 최대한 해보려고 한다.

코딩테스트 풀다가 Map객체에 대해서 좀 자세히 들여다 본 내용을 적으려고 한다.


Map 객체

Map 객체는 Object와 매우 유사하다.
key와 value를 맵핑시켜 값을 저장하며 저장된 순서대로 요소에 접근할 수 있다.

Map 생성

let map = new Map();

Map 객체 생성은 new Map() 생성자를 사용한다.

Map.set()

Map 객체에 데이터를 저장할 때는 parameter로 key와 value를 이용한다.

map.set("name", "chan");
map.set("age", 30);
map.set("email", "chan@gmail.com");
map.set("phone", true);
map.size; // 4

set

Map.get()

Map 객체에 저장된 데이터를 읽을 때는 get() 함수에 parameter로 얻고자 하는 값의 key를 전달한다.

map.get("name"); // chan
map.get("age"); // 30
map.get("email"); // chan@gmail.com
map.get("phone"); // true

get

Map.has()

Map 객체에 특정 key의 value가 저장되어 있는지 확인하려면 has() 함수를 사용한다.

map.has("name"); // true
map.has("address"); // false

has

Map.delete()

Map 객체에 저장되어 있는 특정 데이터를 삭제하려면 delete() 함수를 사용한다.

map.delete("age"); // true
map.delete("address"); // false

Map 객체에 특정 데이터가 저장되어 있다면 true를 반환하고 없으면 false를 반환한다.

delete

Map.forEach()

Map 객체에 저장되는 모든 데이터를 읽을 때는 forEach() 함수를 사용한다.

map.forEach((m) => console.log(m));

forEach

Map.clear()

Map 객체에 저장되어 있는 모든 데이터를 한번에 삭제하려면 clear() 함수를 사용한다.

map.clear();

clear


📚 Map과 Object는 매우 유사하지만 몇 가지 차이점이 있다.

  • Object의 경우 key로 문자열만 사용할 수 있지만 Map은 key로 어떤 타입이든 가능하다.
    map
    map.set({ a: 1 }, true);
    {a:1} 의 key는 단적인 예시지만 key로 지정되고 Object로 지정된다.
  • Object는 몇 개의 데이터가 담겼는지 수동적으로 계산해야 하는데 Map은 size 속성을 통해 크기를 쉽게 알 수 있다.
  • Object는 저장된 데이터를 for-in 반복문으로 읽었을 때 데이터를 저장한 순서대로 읽는다고 보장할 수 없지만 Map은 데이터를 저장한 순서를 보장한다.

바닐라 자바스크립트 책을 참고하여 나와 있는 내용을 읽어보고 console에 찍어보며 작성했다.

profile
드디어 신발 신은 프론트엔드 개발자

0개의 댓글