Set , Map

이경택·2022년 2월 15일
0

Set

수학적 집합을 구현하기 위한 자료구조이며 객체와 비슷하지만 다음과 같은 차이가 있다.

구분배열Set객체
동일한 값을 중복하여 포함OX
요소 순서에 의미OX
인덱스로 요소 접근OX

생성

생성자 함수로 생성
Set 생성자 함수는 이터러블을 인수로 전달받아 Set 객체를 생성

const set1 = new Set([1,2,3])
console.log(set1) // Set(3) {1,2,3}

집합연산

교집합

Set.prototype.intersection = function(set){
  return new Set([...this].filter(v=>Set.has(v)))
}
const setA = new Set([1,2,3,4])
const setB = new Set([2,4])
console.log(setA.intersection(setB)) // Set(2) {2,4}

차집합

Set.prototype.difference = function(set){
  return new Set([...this].filter(v=>!Set.has(v)))
}
const setA = new Set([1,2,3,4])
const setB = new Set([2,4])
console.log(setA.intersection(setB)) // Set(2) {1,3}

Map

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

구분객체Map객체
키로 사용할 수 있는 값문자열 또는 심벌 값객체를 포함한 모든 값
이터러블XO
요소 개수 확인Object.keys(obj).lengthmap.size

생성

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

const map1 = new Map([['key1', 'value1'], ['key2','value2']])
console.log(map1) // Map(2) {'key1'=>'value1' , 'key2'=>'value2'}
profile
한 줄로 소개 할 수 없는 개발자

0개의 댓글

관련 채용 정보