set & map

Seulyi Yoo·2022년 8월 5일
0

javascript grammar

목록 보기
20/20
post-thumbnail

set

배열과 같은 데이터 집합으로, 중복에 대한 제한이 없는 배열과 달리 중복을 허용하지 않음

new Set() 을 사용해 생성 add() 라는 함수를 사용해 새로운 값을 추가할 수 있음

map

객체와 같이 키와 값을 연결하는 방식의 데이터 집합

  • 객체
    • 키값으로 문자, 심벌 타입만 허용
    • 정렬에 관여하지 않음
    • 순회를 위해서 키값을 통해 배경을 얻어 배열을 순회
    • 크기를 알기 위해서는 키값 사용 등 직접 판별해야 함
    • 키값으로 모든 데이터 타입 허용
    • 삽입된 순서대로 정렬됨
    • map.size 로 크기를 바로 알 수 있음
    • 맵 자체로 순회할 수 있음
    • new Map() 을 사용해 생성함
    • set() 이라는 함수를 사용해 새로운 프로퍼티(키와 값의 쌍)를 추가할 수 있음

Set 심화

배열과 차이점

  • 중복을 허용하지 않음
  • 인덱스의 개념이 없음
  • 키와 값이 같음

Set 은 주로 중복을 제거하거나 값의 유무만을 판단해야 하는 경우에 사용되며, 배열은 특정요소에 접근해야 하는 경우나 가타 인덱스가 필요한 상황에 사용됨.

new Set()

새로운 set 을 중복을 제거하여 생성함

const arr = [1, 2, 1];
const aSet = new Set(arr);
console.log(aSet); // Set {1, 2}

add() 중복을 허용하지 않고 값을 추가함

delete() 주어진 값을 set 에서 제거함.

console.log(aSet.delete(1)); // true | false

set 에 없는 값을 제거하려고 시도해도 에러가 발생하지 않고, 반환되는 값으로 해당 값이 없다는 것을 알 수 있음.

has() 주어진 값이 존재하는지 여부에 따라 TRUE | FALSE 반환

clear() set 에 들어있는 요소들을 모두 제거하고 비어있는 상태로 만듦

size() 는 배열의 length 처럼 저장된 요소의 개수를 반환

forEach()

const aSet = new Set([1, 2, 3, 4, 5]);

aSet.forEach((number) => {
  if(number > 3) {
    aSet.delete(number);
  }
});

console.log(aSet); // {1, 2, 3}

Map

객체와의 차이점

  • 순서를 보장함
  • 반복이 가능한 객체
  • 모든 데이터 타입의 키를 허용함
  • 키를 문자열로 취급하지 않음

키의 순서가 보장되어야 할 때나 객체의 키가 객체에 허용되지 않는 데이터 타입인 경우에 사용되며, 이외에는 객체가 사용됨.

new Map()

새로운 맵을 생성함

set() 주어진 키와 값을 Map 에 추가함

const aMap = new Map();

aMap.set(1, 'a');
aMap.set(2, 'b');

console.log(aMap); // {1 => 'a', 2 => 'b'}

get() 인자로 전달받은 키에 해당하는 값을 반환함. 키가 존재하지 않을 경우 undefined 를 반환함.

has() 인자로 전달받은 키가 Map 에 존재하는지에 따라 TRUE | FALSE 을 반환함

delete() 인자로 전달받은 키에 해당하는 값을 삭제하고, 삭제 여부를 TRUE | FALSE 을 반환함. 존재하지 않은 키 값을 전달하는 경우 에러가 발생하지 않고 FALSE 을 반환함.

clear() Map 에 들어있는 property 들을 모두 제거하고 비어있는 상태로 만듦

size() Map 에 저장된 요소의 개수를 반환함

profile
성장하는 개발자 유슬이 입니다!

0개의 댓글