Map Object

Map Object는 key-value 쌍을 보유하고 있으며, 키의 삽입순서를 기억하고 있다. 

key를 사용하여 value를 get, set할 수 있다. 

key는 중복될 수 없으며, 하나의 key에는 하나의 value만 저장 가능

key로 사용할 수 있는 데이터 : string, symbol(ES6), object, function => number는 key로 사용이 불가능하다.

const map = new Map();

map.set('a',1);
map.set('b',2);
map.set('c',3);

console.log(map.get('a')); // 1

 

Map method

  1. Map.prototype.size : Map 객체의 키-값 쌍의 갯수 반환
  2. Map.prototype.get : Map.get('key') 해당하는 key의 value를 반환
  3. Map.prototype.set : Map.set('key','value') 키와 값을 map에 넣어줌
  4. Map,prototype.clear : Map 객체를 비워준다. === size 를 0으로 만들어준다.
  5. Map.prototype.forEach :
    // Arrow function
    forEach(() => { /* ... */ } )
    forEach((value) => { /* ... */ } )
    forEach((value, key) => { /* ... */ } )
    forEach((value, key, map) => { /* ... */ } )
    
    // Callback function
    forEach(callbackFn)
    forEach(callbackFn, thisArg)
    
    // Inline callback function
    forEach(function() { /* ... */ })
    forEach(function(value) { /* ... */ })
    forEach(function(value, key) { /* ... */ })
    forEach(function(value, key, map) { /* ... */ })
    forEach(function(value, key, map) { /* ... */ }, thisArg)​
    
    // Array.prototype.forEach와 통일성을 유지하기 위해서 parm순서 value, key
  6. Map.prototype.delete : Map.delete('key') 해당 key와 value 쌍을 map collection에서 삭제
  7. Map.prototype.has : Map.has('key') 해당 key에 해당하는 value가 존재하는지 확인 boolean return
  8. Map.prototype.entries : Map.entries(); 는 map안의 모든 entry들을 순회할 수 있는 iterable object를 반환해준다.
    const map = new Map();
    
    map.set('a',1);
    map.set('b',2);
    map.set('c',3);
    
    const entMap = map.entries();
    
    console.log(entMap.next().value); // ['a', 1]
    console.log(entMap.next().value); // ['b', 2]
    console.log(entMap.next().value); // ['c', 3]​
  9. Map.prototype.keys() : entries 와 같이 map안의 모든 key값을 순회할 수 있는 iterable object를 반환해준다.
    const map = new Map();
    
    map.set('a',1);
    map.set('b',2);
    map.set('c',3);
    
    const entMap = map.keys();
    
    console.log(entMap.next().value); // a
    console.log(entMap.next().value); // b
    console.log(entMap.next().value); // c​
  10. Map.prototype.values() : map안의 모든 value들을 순회할 수 있는 iterable object를 반환
    const map = new Map();
    
    map.set('a',1);
    map.set('b',2);
    map.set('c',3);
    
    const entMap = map.values();
    
    console.log(entMap.next().value); // 1
    console.log(entMap.next().value); // 2
    console.log(entMap.next().value); // 3​

 

[+] 참고하면 좋을 블로그

https://medium.com/@hongkevin/js-5-es6-map-set-2a9ebf40f96b

 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/set

728x90

Array.prototype.map()

map()는 Array의 내장 함수로 배열 내의 모든 요소 각각에 대해 주어진 callback 함수를 호출한 결과를 모아 새로운 배열로 반환한다.

 

구문

arr.map( callback( currentValue[, index [, array]])[, thisArg])

 

매개변수

  • callback : 새로운 배열 요소를 생성하는 함수
    • currentValue : 처리할 현재 요소
    • index ( Option ) : 처리할 현재 요소의 인덱스
    • array ( Option ) : map을 호출한 배열
    • thisArg ( Option ) : callback을 실행할 때 this로 사용되는 값

반환 값

배열의 각 요소에 대해 callback 함수를 실행한 결과를 모두 모은 새로운 배열 (undefined 도 포함한다.)

 

예제 코드

// 예시 코드

let arr = [1,2,3,4,5];

console.log(arr); // [1,2,3,4,5]

arr = arr.map( number => {
   return number *= 2;
});

console.log(arr); // [2,4,6,8,10]

// 문자열로 바꾸기
arr = arr.map(String);
console.log(arr); // ['2', '4', '6', '8', '10']

 

출력 결과

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map

728x90

+ Recent posts