TIL] Deep Dive-Set과 Map

2488 단어 MapTILsetdeepdiveMap

🌼 37.1 Set

Set 객체는 중복되지 않는 유일한 값들의 집합니다. Set 객체는 배열과 유사하지만 다음과 같은 차이가 있다. 이러한 Set 객체의 특성은 수학적 집합의 특성과 일치한다. Set은 수학적 집합을 구현하기 위한 자료구조다. 따라서 Set을 통해 교집합, 합집합, 차집합, 여집합 등을 구현할 수 있다.

Set 생성자 함수는 이터러블을 인수로 전달받아 Set 객체를 생성한다. 이때 이터러블의 중복된 값은 Set 객체에 요소로 저장되지 않는다.

🌼 37.1.1 - 37.1.6 Set 내장 함수

  • Set.prototype.size: getter 함수만 존재하는 접근자 프로퍼티로 Set 객체의 요소의 개수를 확인할 때 사용한다.

  • Set.prototype.add: Set 객체에 요소를 추가할 때 사용한다. add 메서드는 새로운 요소가 추가된 Set 객체를 반환하며 메서드를 연속적으로 호출할 수 있다. 중복된 요소의 추가를 시도하면 무시되며 에러는 발생하지 않는다.

  • Set.prototype.has: has 메서드는 특정 요소의 존재 여부를 확인해서 boolean 값으로 반환한다.

  • Set.prototype.delete: Set 객체의 특정 요소를 삭제할 때 사용한 뒤 삭제 성공 여부를 boolean 값으로 반환한다. 존재하지 않는 값의 삭제를 시도할 경우 무시되며 에러는 발생하지 않는다. boolean 값을 반환하므로 add 메서드와 다르게 연속적으로 호출할 수 없다.

  • Set.prototype.clear: Set 객체의 모든 요소를 일괄 삭제할 때 사용하며 언제나 undefined를 반환한다.

🌼 37.2 Map

Map 객체는 키와 값의 쌍으로 이루어진 컬렉션이다. Map 객체는 객체와 유사하지만 다음과 같은 차이가 있다.

Map 생성자 함수는 이터러블을 인수로 전달받아 Map 객체를 생성한다. 이때 인수로 전달되는 이터러블은 키와 값의 쌍으로 이루어진 요소로 구성되어야 한다.

const map1 = new Map([['key1', 'value1'], ['key2','value2']]);
// Map(2) {'key1' => 'value1', 'key2' => 'value2'}

🌼 37.2.3 요소 추가

  • Map.prototype.set: Map 객체에 요소를 추가할 때 사용한다.

요소 추가 메서드 이외의 다른 메서드는 Set 객체의 메서드의 이름과 기능이 동일하여 생략한다.

좋은 웹페이지 즐겨찾기