Skip to content

difference

두 배열의 차이를 계산해요.

이 함수는 파라미터로 두 배열을 받아서, 첫 번째 배열에 있지만 두 번째 배열에는 없는 요소들을 포함한 새로운 배열을 반환해요. 즉, 첫 번째 배열에서 두 번째 배열에 있는 요소들을 제외한 나머지 요소들로 구성된 배열을 만들어줘요.

인터페이스

typescript
function difference<T>(firstArr: T[], secondArr: T[]): T[];

파라미터

  • firstArr (T[]): 차이를 계산할 배열이에요. 이 배열이 주 배열이고, 이 배열의 요소들이 비교되고 필터링돼요.
  • secondArr (T[]): 첫 번째 배열에서 제외할 요소들을 포함한 배열이에요. 이 배열의 각 요소는 첫 번째 배열과 비교되며, 일치하는 요소가 있으면 결과에서 제외돼요.

반환 값

(T[]): 첫 번째 배열에는 있지만 두 번째 배열에는 없는 요소들이 담긴 새로운 배열이에요.

예시

typescript
import { difference } from 'es-toolkit/array';

// 사용 예제:
const array1 = [1, 2, 3, 4, 5];
const array2 = [2, 4];
const result = difference(array1, array2);
// 2와 4는 두 배열 모두에 있기 때문에 결과에서 제외되고, result 변수에는 [1, 3, 5]가 할당되어요.

Lodash 호환성

es-toolkit/compat에서 difference를 가져오면 lodash와 호환돼요.

  • difference는 첫 번째 배열과 비교하기 위해 여러 배열을 받을 수 있어요.
  • difference는 유사 배열 객체를 인수로 받을 수 있어요.
typescript
import { difference } from 'es-toolkit/compat';

const array1 = [1, 2, 3, 4, 5];
const array2 = [2, 4];
const array3 = [5, 6];
const result = difference(array1, array2, array3);
// 2, 4, 5는 적어도 하나의 배열에 있기 때문에 결과에서 제외되고, result 변수에는 [1, 3]가 할당되어요.

const arrayLike1 = { 0: 1, 1: 2, 2: 3, length: 3 };
const arrayLike2 = { 0: 2, 1: 4, length: 2 };
const result2 = difference(arrayLike1, arrayLike2);
// 2는 두 유사 배열 객체에 있기 때문에 결과에서 제외되고, result2 변수에는 [1, 3]가 할당되어요.

성능 비교

번들 사이즈성능
es-toolkit90 바이트 (92.4% 작음)9,317,227 회 (85% 빠름)
lodash-es7,958 바이트5,030,861 회

MIT 라이선스에 따라 배포됩니다.