@modern-kit/utils
Version:
37 lines (35 loc) • 1.56 kB
TypeScript
/**
* @description 첫 번째 배열에서 두 번째 배열에 없는 요소들을 반환하는 함수입니다.
*
* `iteratee` 함수를 제공하여 각 요소를 변환한 후 결과 값을 기반으로 비교할 수 있습니다.
*
* @template T - 첫 번째 배열의 요소 타입입니다.
* @template U - `iteratee` 함수가 반환하는 타입으로, 기본값은 `T`와 같습니다.
* @param {T[] | readonly T[]} firstArr - 차집합을 구할 기준이 되는 첫 번째 배열입니다.
* @param {T[] | readonly T[]} secondArr - 첫 번째 배열에서 제거할 요소들이 포함된 두 번째 배열입니다.
* @param {(item: T) => U} [iteratee] - 각 배열 요소를 비교하기 전에 변환하는 함수입니다. 이 함수가 제공되면, 변환된 결과를 기준으로 비교합니다.
* @returns {T[]} 두 번째 배열에 없는 첫 번째 배열의 요소들이 담긴 배열을 반환합니다.
*
* @example
* // 기본 사용 예제
* const arr1 = [1, 2, 3, 4];
* const arr2 = [2, 4];
*
* difference(arr1, arr2); // [1, 3]
*
* @example
* // iteratee 함수 사용 예제
* const users = [
* { id: 1, name: 'john' },
* { id: 2, name: 'front' },
* ];
* const activeUserIds = [
* { id: 1, name: 'john' },
* { id: 3, name: 'bgzt' },
* ];
*
* difference(users, activeUserIds, user => user.id));
* // [{ id: 2, name: 'front' }]
*/
declare function difference<T, U = T>(firstArr: T[] | readonly T[], secondArr: T[] | readonly T[], iteratee?: (item: T) => U): T[];
export { difference };