[JAVASCRIPT] Set, Map 객체

y55n·2022년 6월 12일

JAVASCRIPT

목록 보기
13/21
post-thumbnail

Set 객체

Set 객체는 배열(Array)처럼 값들의 집합이다. 배열처럼 데이터 타입에 상관없이 값을 추가할 수 있다. 배열과 가장 큰 차이점은 Set는 중복 값을 허용하지 않는다. 즉, Set는 유일한 값을 보장한다. Set에 데이터를 추가해서 저장하려고 하면, 기존에 동일한 값이 저장되어 있는지 확인하고 이미 저장되어 있다면 나중에 추가한 데이터는 추가되지 않는다.

Set 생성자

Set은 new Set() 생성자를 사용해서 생성한다

let mySet=new Set();

add()

배열은 push()라는 함수를 사용해서 데이터를 추가할 수 있는데, Set은 add()라는 함수를 사용해서 데이터를 추가할 수 있다. 이때 추가하려는 데이터가 이미 저장되어 있는지를 확인하고, 이미 동일한 데이터가 저장되어 있다면 그 데이터는 추가되지 않는다.

let mySet=new Set();
mySet.add(1);
mySet.add(2);
mySet.add(3);
mySet.add(1);	//이미 1이란 값이 저장되어 있기 때문에 추가되지 않음
mySet.size;		//3

Set에 저장되어 있는 데이터의 수는 size 속성을 통해 쉽게 알 수 있다

has()

Set에 특정 데이터가 저장되어 있는지 확인하려면 has() 함수를 사용한다

mySet.has(1);	//true

delete()

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

mySet.delete(2);

clear()

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

mySet.clear();	//저장되어 있는 모든 데이터가 삭제 됨

forEach()

Set에 저장되어 있는 모든 데이터를 읽을 때는 forEach() 함수를 사용한다

mySet.forEach(function(item){
  console.log(item);
});

Map 객체

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

Map 생성자

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

let userMap=new Map();

set()

Map 객체에 데이터를 저장할 때는 파라미터로 키와 값을 이용하면 된다

let userMap=new Map();
userMap.set("name", "홍길동");
userMap.set("email", "abc@email.com");
userMap.set("phone", "000-0000-0000");
userMap.size	//3

get()

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

userMap.get("name");	//홍길동

has()

Map에 특정 키의 값이 저장되어 있는지 확인하려면 has() 함수를 사용한다

userMap.has("name");	//true

delete()

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

userMap.delete("name");	//파라미터로 키 전달

clear()

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

userMap.clear();	//저장되어 있는 모든 데이터가 삭제됨

forEach()

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

userMap.forEach(function(item){
  console.log(item);
});

Object와 Map의 차이점

  • Object의 경우 키로 문자열만 사용할 수 있지만, Map은 키로 어떤 타입이든 가능하다
  • Object는 몇 개의 데이터가 담겼는지는 수동적으로 계산해야 하지만, Map은 size 속성을 통해 크기를 쉽게 알 수 있다
  • Object는 저장된 데이터를 for-in 반복문으로 읽었을 때 데이터를 저장한 순서대로 읽는다고 보장할 수 없다. 하지만 Map은 데이터를 저장한 순서를 보장한다
profile
나 혼자 공부 기록

0개의 댓글