UNPKG

@modern-kit/utils

Version:
1 lines 1.77 kB
{"version":3,"file":"index.cjs","sources":["../../../src/validator/isSubset/index.ts"],"sourcesContent":["import { difference } from '../../array';\n\n/**\n * @description `subset` 배열이 `superset` 배열의 부분집합인지 여부를 검사합니다.\n \n * 선택적으로, `iteratee` 함수를 제공하여 각 요소를 비교하기 전에 변환할 수 있습니다.\n *\n * @template T - `superset`과 `subset` 배열의 요소 타입.\n * @template U - 선택적인 `iteratee` 함수가 반환하는 값의 타입.\n *\n * @param {T[] | readonly T[]} superset - 부분집합을 검사할 상위 배열.\n * @param {T[] | readonly T[]} subset - 상위 배열에 포함되어 있는지 확인할 부분집합 배열.\n * @param {(item: T) => U} [iteratee] - 각 요소에 대해 적용할 선택적 변환 함수.\n * @returns {boolean} - `subset`이 `superset`의 부분집합이면 `true`, 그렇지 않으면 `false`를 반환합니다.\n *\n * @example\n * const superset = [1, 2, 3, 4];\n * const subset = [2, 3];\n * isSubset(superset, subset); // true\n *\n * @example\n * const superset = [1, 2, 3, 4];\n * const notSubset = [2, 5];\n * isSubset(superset, notSubset); // false\n *\n * @example\n * const superset = [{ id: 1 }, { id: 2 }, { id: 3 }];\n * const subset = [{ id: 1 }, { id: 2 }];\n * isSubset(customSuperset, customSubset, item => item.id); // true\n */\nexport function isSubset<T, U>(\n superset: T[] | readonly T[],\n subset: T[] | readonly T[],\n iteratee?: (item: T) => U\n): boolean {\n return difference(subset, superset, iteratee).length === 0;\n}\n"],"names":["difference"],"mappings":";;;;AA8BO,SAAS,QAAA,CACd,QAAA,EACA,MAAA,EACA,QAAA,EACS;AACT,EAAA,OAAOA,0BAAA,CAAW,MAAA,EAAQ,QAAA,EAAU,QAAQ,EAAE,MAAA,KAAW,CAAA;AAC3D;;;;"}