mapEntries
주어진 객체의 각 key와 value를 주어진 iteratee 함수 결과에 따라 함께 변환하여 새로운 객체를 반환합니다.
iteratee는 [새 key, 새 value] 튜플을 반환해야 하며, 변환된 key가 겹치면 나중에 순회한 값으로 덮어씁니다.
Code
Interface
typescript
function mapEntries<
T extends Record<PropertyKey, any>,
K extends PropertyKey,
V,
>(
obj: T,
iteratee: (iterateData: {
key: keyof T;
value: T[keyof T];
obj: T;
}) => readonly [K, V]
): Record<K, V>;
Usage
typescript
import { mapEntries } from '@modern-kit/utils';
const obj = { a: 1, b: 2, c: 3 };
mapEntries(obj, ({ key, value }) => [key.toUpperCase(), value * 10]);
// { A: 10, B: 20, C: 30 }
const roles = { fred: 'admin', pebbles: 'guest' } as const;
mapEntries(roles, ({ key, value }) => [value, key]);
// { admin: 'fred', guest: 'pebbles' }