• Map key/value pairs for an object, and construct a new one

    类型参数

    • K extends string
    • V
    • NK extends string | number | symbol = K
    • NV = V

    参数

    • obj: Record<K, V>
    • fn: (key: K, value: V) => undefined | [NK, NV]

    返回 Record<NK, NV>

    objectMap({ a: 1, b: 2 }, (k, v) => [k.toString().toUpperCase(), v.toString()])
    // { A: '1', B: '2' }

    Swap key/value:

    objectMap({ a: 1, b: 2 }, (k, v) => [v, k])
    // { 1: 'a', 2: 'b' }

    Filter keys:

    objectMap({ a: 1, b: 2 }, (k, v) => k === 'a' ? undefined : [k, v])
    // { b: 2 }