## partition · function

When using an object as `array`.

**Signature:** `{ <OUT_K extends string | number | symbol, IN_V>(source: IN_V[], func: (value: IN_V, key: number) => OUT_K | OUT_K[]): Record<OUT_K, Record<number, IN_V>>; <IN_K extends string | number | symbol, OUT_K extends string | number | symbol, IN_V>(source: Record<...>, func: (value: IN_V, key: IN_K) => OUT_K | OUT_K[]): Re...`

**Type Parameters:**

- `OUT_K extends string | number | symbol`
- `IN_V`

**Parameters:**

- `source: IN_V[]`
- `func: (value: IN_V, key: number) => undefined | OUT_K | OUT_K[]`
