Set.prototype.difference()

Limited availability

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

Set 인스턴스의 difference() 메서드는 집합을 받아서 이 집합에는 있지만 주어진 집합에는 없는 요소를 포함하는 새로운 집합을 반환합니다.

구문

js
difference(other)

매개 변수

other

Set 객체 혹은 유사 집합 객체

반환 값

이 집합에는 있지만 other 집합에는 없는 요소를 포함하는 새 Set 객체입니다.

설명

수학적 표기법에서 차집합(difference)는 다음과 같이 정의됩니다.

A B = { x A x B } A\setminus B = {x\in A\mid x\notin B}

벤 다이어그램을 사용하자면

두 개의 원이 겹치는 벤 다이어그램입니다. A와 B의 차집합은 A에서 B와 겹치지 않는 부분입니다.

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

  • thisother.size보다 더 많은 요소가 있으면 other.sizekeys() 메서드를 호출하여 other을 순회하고 other에 표시되지 않는 모든 요소로 새 집합을 구성합니다.
  • 그렇지 않으면, this의 요소를 순회하고 other.has(e)거짓 같은 값을 반환하게 만드는 모든 요소 e를 포함하는 새 집합을 구성합니다.

반환된 집합의 요소 순서는 this와 동일합니다.

예제

difference() 사용하기

아래 예제는 홀수 집합(<10)과 완전 제곱 집합(<10)의 차이를 계산하는 예제입니다. 결과는 완전 제곱이 아닌 홀수 집합입니다.

js
const odds = new Set([1, 3, 5, 7, 9]);
const squares = new Set([1, 4, 9]);
console.log(odds.difference(squares)); // Set(3) { 3, 5, 7 }

명세서

Specification
Set methods
# sec-set.prototype.difference

브라우저 호환성

BCD tables only load in the browser

같이 보기