Skip to main content

union

두 배열을 결합 후, 중복 요소를 제외해 고유한 값만을 갖는 새로운 배열을 반환하는 함수입니다.

기본적으로 원시 값에 대해서만 중복 요소를 판단합니다.

2번째 인자인 iteratee 함수를 제공하면, 각 요소를 iteratee 반환값에 따라 중복 여부를 판단할 수 있습니다.


Code

🔗 실제 구현 코드 확인

Default

이름hzmean성능
modern-kit/union4,409,019.080.0002fastest
lodash/union3,714,184.110.0003slowest
  • modern-kit/union
    • 1.19x faster than lodash/union

with iteratee

이름hzmean성능
modern-kit/union3,801,245.650.0003fastest
lodash/unionBy2,537,527.220.0004slowest
  • modern-kit/union
    • 1.50x faster than lodash/unionBy

Interface

typescript
function union<T>(
arr1: T[] | readonly T[],
arr2: T[] | readonly T[]
): T[];

function union<T, U = T>(
arr1: T[] | readonly T[],
arr2: T[] | readonly T[],
iteratee?: (item: T) => U
): T[];

Usage

Default

typescript
import { union } from '@modern-kit/utils';

union([1, 2, 3, 4], [1, 2, 3, 5]); // [1, 2, 3, 4, 5]

Iteratee

typescript
import { union } from '@modern-kit/utils';

const arr1 = [
{ id: 1, name: 'john' },
{ id: 2, name: 'jane' },
];
const arr2 = [
{ id: 1, name: 'john' },
{ id: 3, name: 'gromit' },
];

union(arr1, arr2, (item) => item.id);
/*
[
{ id: 1, name: 'john' },
{ id: 2, name: 'jane' },
{ id: 3, name: 'gromit' }
]
*/