[javascript] Map 알아보기 (set, get 메소드 사용하기)

2022. 2. 15. 23:26·과거의 이력/javascript

프로그래머스 해시문제를 풀고 다른사람 풀이를 살펴보던중

Map을 사용한 풀이를 보았다.

Map역시 ES6에 도입된 문법이다.

이번엔 Map의 key value를 사용해보는 예제를 정리해보려 한다.

 

나의 풀이는

https://pro-jm.tistory.com/52

여기를 참고.

 


 

 

1. Map() 이란?

  • Map()은 key-value 페어로 이루어져있다.
  • key를 사용하여 value를 get, set 할 수 있다.
  • key는 중복될 수 없다. (하나의 key에 하나의 value값만 가질 수 있다는 뜻)
  • key로 사용 가능한 데이터타입은 string, symbol, object, function 이 있다.

 

 

2. 메소드 개념

set()

set 메소드를 사용하여 Map에 새로운 객체를 추가할 수 있다.

(key, value) 형태로 객체를 추가한다.

get()

get 메소드는 Map에 할당되어있는 value를 key로 접근하여 조회할 수 있다.

 

 

 

3. set() 으로 값 추가하기

예시를 살펴보자

let jeongminInfo = new Map();

jeongminInfo.set('name', 'OhJeongMin');
jeongminInfo.set('job', 'developer');
jeongminInfo.set('language', 'javascript');


// output

Map(3) {
  'name' => 'OhJeongMin',
  'job' => 'developer',
  'language' => 'javascript'
}

나의 정보에 이름, 직업, 언어를 추가해보자.

jeongminInfo 변수에 new Map() 로 새로운 Map을 생성한다.

생성 후 set 메소드를 사용하면 key-value 형태로 값을 추가할 수 있다.

 

 

 

물론 아래 방식으로 선언과 초기화를 동시에 할 수도 있다.

let jeongminInfo = new Map().set('name', 'OhJeongMin').set('job', 'developer').set('language', 'javascript');

 

 

 

3. get() 으로 값 조회하기

get을 사용하면 key로 value를 조회할 수 있다고 했다.

바로 예시로 살펴보자.

// 이름 조회하기
jeongminInfo.get('name')

//output
'OhJeongMin'

 

 

4. get과 set을 사용한 응용 예제

jeongminInfo에 passion을 조회하여 없을경우 새 값을 할당해보는 코드를

get과 set을 사용해보자.

 

jeongminInfo.set('passion', (jeongminInfo.get('passion') || 'max'));

// output
Map(4) {
  'name' => 'OhJeongMin',
  'job' => 'developer',
  'language' => 'javascript',
  'passion' => 'max'
}

 

코드를 뜯어보면,

새 값을 추가하기위해 key자리에 'passion' 값을 할당하였다.

value자리에는 or 조건문을 사용하여

(jeongminInfo.get('passion') || 'max') 로 로직을 짰다.

passion이라는 key값이 현재 값이 없어 undefined이므로 or조건문에서 false로 걸릴것이다.

따라서 'max' 값이 채택되고 이 값이 set의 메소드에 value값으로 할당되는 것이다.

 

 

5. 이번에는 팁

 

1. has()

key로 value값을 조회하는것이 아닌 값의 존재여부만 알고싶을때는 has() 메소드를 사용하면 된다.

// 이름 존재여부 조회하기
jeongminInfo.has('name');

// outpup
true


// 나이 존재여부 확인하기
jeongminInfo.has('age');

//output
false

 

2. delete()

값 삭제할때 사용하는 메소드이다.

// language 삭제
jeongminInfo.delete('language');

// output
true

// 삭제가 되었는지 확인
console.log(jeongminInfo);

//output
{
  'name' => 'OhJeongMin',
  'job' => 'developer',
  'passion' => 'max'
}

 

 

3. clear()

값 전체삭제시 사용하는 메소드이다.

jeongminInfo.clear()
console.log(jeongminInfo)

// output
Map(0) {}

 

 


참고사이트 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

 

 

 

 

'과거의 이력 > javascript' 카테고리의 다른 글

[javascript] 객체에서 마지막 인덱스 찾는법 (findIndex 뒤에서부터 적용하기)  (0) 2022.02.22
[javascript] Converting circular structure to JSON (JSON 형태 배열 로그 찍는법)  (0) 2022.02.22
[javascript] 누산기 reduce 알아보기 (알고리즘 자주출몰)  (0) 2022.02.15
[javascript] for in 과 for of 사용법(차이)  (0) 2022.02.14
[javascript] for문 제발 그마아안! (map 사용하여 한줄로 끝내기)  (0) 2022.02.08
'과거의 이력/javascript' 카테고리의 다른 글
  • [javascript] 객체에서 마지막 인덱스 찾는법 (findIndex 뒤에서부터 적용하기)
  • [javascript] Converting circular structure to JSON (JSON 형태 배열 로그 찍는법)
  • [javascript] 누산기 reduce 알아보기 (알고리즘 자주출몰)
  • [javascript] for in 과 for of 사용법(차이)
정많이 정만이
정많이 정만이
jeongmany
  • 정많이 정만이
    정많이 정만이
    정많이 정만이
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • 과거의 이력 (71)
        • CS (12)
        • 프론트엔드 (4)
        • javascript (21)
        • Vue.js (7)
        • bootstrap (1)
        • [그리드] ag-grid (3)
        • [그리드] vue-grid-layout (1)
        • HTML_CSS (5)
        • NPM (1)
        • [차트]highcharts (0)
        • JAVA (9)
        • 백엔드 (1)
        • 기본개념 (손필기) (5)
        • 프로그래머스 (1)
      • 알고리즘 (6)
      • 통계 (9)
        • 통계지식 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자바스크립트
    js
    CSS
    개발자
    JavaScript
    vue
    ag-grid
    코딩테스트
    알고리즘
    우분투
    버추얼박스
    webpack.config.js
    ubuntu
    bootstrap
    객체
    java
    vuejs
    HTML
    vue.js
    Webpack
    js map
    ES6
    cs
    vue.config.js
    aggrid
    공유메모리
    ubuntu설치
    반복문
    selectbox
    VirtualBox
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
정많이 정만이
[javascript] Map 알아보기 (set, get 메소드 사용하기)
상단으로

티스토리툴바