1. Set과 Map이란
2. Set과 Map 비교
기능
Set
Map
순서 의미
X
X
생성
new Set();
new Map();
개수 확인
Set#size()
Map#size()
요소 추가
Set#add() (중복허용X)
Map#add() (키 중복허용X)
요소 확인
Set#has()
Map#has()
요소 삭제
Set#delete()
Map#delete()
요소 전체삭제
Set#clear()
Map#clear()
요소 순회
Set#forEach()
Map#forEach()
3. Set과 수학적 집합 3.1 교집합 다음과 같이 교집합을 구할 수 있다.
Intersection.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 const getIntersection = function (set1, set2 ) { let result = new Set (); for (const value of set1) { if (set2.has(value)) result.add(value); } return result; }; const getAllTypeIntersection = function (iter1, iter2 ) { iter1 = new Set ([...iter1]); iter2 = new Set ([...iter2]); let result = new Set (); for (const value of iter1) { if (iter2.has(value)) result.add(value); } return [...result]; }; const set1 = new Set ([1 , 2 , 3 , 4 , 5 ]);const set2 = new Set ([3 , 4 , 5 , 6 , 7 ]);console .log(getIntersection(set1, set2)); console .log(getAllTypeIntersection(set1, set2));
3.2 합집합 다음과 같이 합집합을 구현할 수 있다.
union.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 const getUnion = function (set1, set2 ) { let result = new Set (set1); for (const value of set2) { result.add(value); } return result; }; const getAllTypeUnion = function (iter1, iter2 ) { iter1 = new Set ([...iter1]); iter2 = new Set ([...iter2]); let result = new Set (iter1); for (const value of iter2) { result.add(value); } return [...result]; }; const set1 = new Set ([1 , 2 , 3 , 4 , 5 ]);const set2 = new Set ([3 , 4 , 5 , 6 , 7 ]);console .log(getUnion(set1, set2)); console .log(getAllTypeUnion(set1, set2));
3.3 차집합 차집합(A-B)은 집합 A에는 존재하지만 집합 B에는 존재하지 않는 요소들의 집합이다.
difference.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 const getDifference = function (set1, set2 ) { let result = new Set (set1); for (const value of set2) { result.delete(value); } return result; }; const getAllDifference = function (iter1, iter2 ) { iter1 = new Set ([...iter1]); iter2 = new Set ([...iter2]); let result = new Set (iter1); for (const value of iter2) { result.delete(value); } return [...result]; }; const set1 = new Set ([1 , 2 , 3 , 4 , 5 ]);const set2 = new Set ([3 , 4 , 5 , 6 , 7 ]);console .log(getDifference(set1, set2)); console .log(getAllDifference(set1, set2));
3.4 부분 집합과 상위 집합 집합 A가 집합 B에 포함되는 경우(A⊆B), 집합 A는 집합 B의 부분 집합이며 집합 B는 집합 A의 상위 집합이다.
isSuperset.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 const getIsSuperset = function (set1, set2 ) { for (const value of set2) { if (!set1.has(value)) return false ; } return true ; }; const getAllIsSuperset = function (iter1, iter2 ) { iter1 = new Set ([...iter1]); iter2 = new Set ([...iter2]); for (const value of iter2) { if (!iter1.has(value)) return false ; } return true ; }; console .log(getIsSuperset(set1, set2)); console .log(getAllIsSuperset(set1, set2));
참고자료: poiemaweb.com
If you like this blog or find it useful for you, you are welcome to comment on it. You are also welcome to share this blog, so that more people can participate in it. If the images used in the blog infringe your copyright, please contact the author to delete them. Thank you !