1.Set의 사용한 교집합 , 합집합 , 차집합 , 상위 Set은 중복값을 제외한 유일한 값을 저장한다. 그렇기에 교집합, 합집합 , 차집합, 상위 등을 나타내는데 사용하기 에 용이하다.
1.1. 교집합 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Set .prototype.intersaction = function (set ) { const result = new Set (); for (const value of set ){ if (this .has(value)) result.add(value) } return result; } const setA = new Set ([1 ,2 ,3 ,4 ]);const setB = new Set ([2 ,4 ]);console .log(setA.intersaction(setB)) Set .prototype.intersaction = function (set ) { return [...this].filter(v => set .has(v)); } const setA = new Set([1,2,3,4]); const seB = new Set([2,4]); console.log(setA.intersaction(setB)) // [2,4];
1.2. 합집합 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Set .prototype.union = function (set ) { const result = new Set (this ); for (const value of set ){ result.add(value); } return result; } const setA = new Set ([1 ,2 ,3 ,4 ]);const setB = new Set ([2 ,4 ]);console .log(setA.union(setB)) Set .prototype.union = function (set ) { const result = new Set ([...this,...set]) return result; } const setA = new Set ([1 ,2 ,3 ,4 ]);const setB = new Set ([2 ,4 ]);console .log(setA.union(setB))
1.3 차집합 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Set .prototype.differnce = function (set ) { const result = new Set (this ); for (const value of set ){ result.delete(value); } } return result;} const setA = new Set ([1 ,2 ,3 ,4 ]);const setB = new Set ([2 ,4 ]);console .log(setA.difference(setB)) Set .prototype.difference = function (set ) { return [...this].filter(v => !set .has(v)); } const setA = new Set([1,2,3,4]); const setB = new Set([2,4]); consoel.log(setA.differnce(setB)) //[1,3];
1.4. 상위 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Set .prototype.isSuperset = function (set ) {for (const value of subset){ if (!this .has(value))return false ; } return true ; } const setA = new Set ([1 ,2 ,3 ,4 ]);const setB = new Set ([2 ,4 ]);console .log(setA.isSuperset(setB)) Set .prototype.isSuperset = function (set ) { const superArr = [...this]; return [...superArr].every(v => superArr.includes(v)); } const setA =new Set ([1 ,2 ,3 ,4 ]);const setB = new Set ([2 ,4 ]);console .log(setA.isSuperset(setB))