[JS] Set, Map

이동주·2022년 4월 4일

JavaScript

목록 보기
8/11

Set

set의 특징

  1. Set은 Value를 키 값으로 갖는 컬랙션입니다.
  2. Set은 수정이 가능하며, 프로그램이 실행되는 동안 값의 추가나 삭제가 가능합니다.
  3. 값의 중복이 허용되지 않습니다. (중요..!)
const mySet = new Set("asdf");
mySet.size; // 4
mySet.add("a") // 이미 a의 값이 있기 때문에 추가 X
mySet.size; // 4
  1. set은 인덱스 값으로 데이터 조회가 안됩니다.
const arr = [1,2,3,4,5];
arr[0] // 0;
mySet[0] // undefined;
  1. set이 제공하는 여러가지 함수(메서드)
let mySet = new Set;  // 그냥 new 생성자로 빈 Set을 선언할 수 있습니다.
let iterSet = new Set([1, 2, 3]); // 생성할때 iterable한 객체를 초기 값으로 줄 수 있습니다.
console.log(iterSet.size);  // size로 Set의 크기를 알 수 있습니다.
console.log(iterSet.has(1)); // has로 Set에 값이 존재하는지 알 수 있습니다.
mySet.add(1).add(2).add(3); // add로 Set에 값을 추가합니다. 이것은 체이닝 될 수 있습니다.
mySet.delete(1).delete(2);  // delete로 Set에 값을 삭제할 수 있습니다. 역시 체이닝 될 수 있습니다. 
iterSet.forEach((value, value, iter) => v); // Array.prototype.forEach 와 같은 forEach를 제공합니다. 
iterSet.clear(); // Set의 모든 값을 삭제합니다.

Map

Map의 특징

  1. Key - Value 의 쌍으로 이루어진 컬렉션입니다.
  2. Object 자료형의 특정 문제를 해결할 수 있습니다.
  • key(항상 String)는 중복이 되면 안되는 값입니다 .하지만 Object에서는 중복이 가능하며 그렇게 됬을 경우 내부에서 변수 충돌등 다양한 문제가 생길 수 있습니다. 이런 경우에는 Map을 쓰는 것이 좋은 방법입니다.
  • 배열로써의 장점을 가지고 올 수 있습니다. 즉, 크기나 반복을 하는데 이점이 있습니다.
const myMap = new Map();
myMap.set("lee", "winner");

myMap.forEach(value, key) => { // 다른 forEach와의 호완을 위해서 value, key 순입니다.
	console.log(`${key} = ${value}`);  // yesdoing = looser [object Object] = [object Object]	
}, myMap);

읽어보면 좋은 곳

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

profile
생각나는대로 쓰는 개발 블로그

0개의 댓글