UNPKG

@modern-kit/utils

Version:
1 lines 1.57 kB
{"version":3,"file":"index.mjs","sources":["../../../src/object/findLastKey/index.ts"],"sourcesContent":["/**\n * @description 객체에서 조건에 부합하는 마지막 key를 반환합니다.\n *\n * @template T - 키를 찾고자 하는 객체 요소의 타입\n * @param {T} obj - 검색하고자 하는 객체입니다.\n * @param {(value: T[keyof T]) => boolean} condition - 검색하고자 하는 조건입니다.\n * @returns {string | undefined} 검색하고자 하는 조건에 부합하는 key를 반환합니다. 만약 조건에 부합하는 key가 없다면 undefined를 반환합니다.\n *\n * @example\n * const obj = {\n * bike: { active: true },\n * car: { active: false },\n * plane: { active: true },\n * };\n *\n * findKey(obj, (item) => item.active); // 'plane'\n */\nexport function findLastKey<T extends Record<PropertyKey, any>>(\n obj: T,\n condition: (value: T[keyof T]) => boolean,\n): string | undefined {\n const keys = Object.keys(obj);\n\n for (let i = keys.length - 1; i >= 0; i--) {\n const key = keys[i];\n const value = obj[key];\n\n if (condition(value)) {\n return key;\n }\n }\n return undefined;\n}\n"],"names":[],"mappings":"AAiBO,SAAS,WAAA,CACd,KACA,SAAA,EACoB;AACpB,EAAA,MAAM,IAAA,GAAO,MAAA,CAAO,IAAA,CAAK,GAAG,CAAA;AAE5B,EAAA,KAAA,IAAS,IAAI,IAAA,CAAK,MAAA,GAAS,CAAA,EAAG,CAAA,IAAK,GAAG,CAAA,EAAA,EAAK;AACzC,IAAA,MAAM,GAAA,GAAM,KAAK,CAAC,CAAA;AAClB,IAAA,MAAM,KAAA,GAAQ,IAAI,GAAG,CAAA;AAErB,IAAA,IAAI,SAAA,CAAU,KAAK,CAAA,EAAG;AACpB,MAAA,OAAO,GAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,MAAA;AACT;;;;"}