Set.prototype.isSubsetOf()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Set 인스턴스의 isSubsetOf() 메서드는 하나의 집합을 받아서 이 집합의 모든 요소가 주어진 집합에 있는지 여부를 나타내는 불리언을 반환합니다.

구문

js
isSubsetOf(other)

매개변수

other

Set 객체 혹은 유사 Set 객체입니다.

반환 값

이 Set에 모든 요소가 other Set에 있다면 true를 반환하며, 그렇지 않으면 false를 반환합니다.

설명

수학적 표기법으로 부분집합(subset)은 아래와 같이 표현할 수 있습니다.

A B x A , x B A\subseteq B \Leftrightarrow \forall x\in A,,x\in B

벤 다이어그램을 사용하자면 아래와 같습니다.

두 개의 원이 있는 벤 다이어그램입니다. A는 B에 완전히 포함되므로 A는 B의 부분 집합입니다.

참고: 부분집합 관계는 적절한 부분집합이 아니므로 isSubsetOf()thisother에 동일한 요소가 포함되어 있으면 true를 반환합니다.

isSubsetOf()유사 Set 객체를 other 매개변수로 받습니다. 사용자 코드를 호출하지 않고 this에 저장된 기본 데이터를 직접 검색하기 때문에 실제 this 인스턴스여야 합니다. 그러면 그 동작은 thisother의 크기에 따라 달라집니다.

  • thisother.size보다 많은 요소가 있으면 false를 바로 반환합니다.
  • 그렇지 않으면 this의 요소를 순회하고 this의 요소 e로 인해 other.has(e)거짓같은 값 값을 반환하는 경우 false를 반환합니다. 그렇지 않으면 true를 반환합니다.

예제

isSubsetOf() 사용하기

4의 배수(<20)의 Set은 짝수 Set(<20)의 부분집합입니다.

js
const fours = new Set([4, 8, 12, 16]);
const evens = new Set([2, 4, 6, 8, 10, 12, 14, 16, 18]);
console.log(fours.isSubsetOf(evens)); // true

소수(<20)의 Set은 홀수(<20) Set의 부분집합이 아닙니다. 2는 소수지만 홀수가 아니기 때문입니다.

js
const primes = new Set([2, 3, 5, 7, 11, 13, 17, 19]);
const odds = new Set([3, 5, 7, 9, 11, 13, 15, 17, 19]);
console.log(primes.isSubsetOf(odds)); // false

완전 동일한 Set은 서로에게 부분집합입니다.

js
const set1 = new Set([1, 2, 3]);
const set2 = new Set([1, 2, 3]);
console.log(set1.isSubsetOf(set2)); // true
console.log(set2.isSubsetOf(set1)); // true

명세서

Specification
Set methods
# sec-set.prototype.isSubsetOf

브라우저 호환성

BCD tables only load in the browser

같이 보기