crush
Flattens a deep object to a single dimension
341 bytes
since v12.1.0
Usage
Flattens a deep object to a single dimension. The deep keys will be converted to a dot notation in the new object.
import * as import _
_ from 'radashi'
const const ra: { name: string; power: number; friend: { name: string; power: number; }; enemies: { name: string; power: number; }[];}
ra = { name: string
name: 'ra', power: number
power: 100, friend: { name: string; power: number;}
friend: { name: string
name: 'loki', power: number
power: 80, }, enemies: { name: string; power: number;}[]
enemies: [ { name: string
name: 'hathor', power: number
power: 12, }, ],}
const const crushed: { [x: string]: unknown; name: string; power: number;}
crushed = import _
_.function crush<{ name: string; power: number; friend: { name: string; power: number; }; enemies: { name: string; power: number; }[];}>(value: { name: string; power: number; friend: { name: string; power: number; }; enemies: { name: string; power: number; }[];}): { ...;}
Flattens a deep object to a single dimension, converting the keys
to dot notation.
crush(const ra: { name: string; power: number; friend: { name: string; power: number; }; enemies: { name: string; power: number; }[];}
ra)// {// name: 'ra',// power: 100,// 'friend.name': 'loki',// 'friend.power': 80,// 'enemies.0.name': 'hathor',// 'enemies.0.power': 12// }Empty objects and arrays
Empty objects and arrays are preserved as leaf values, so construct can restore them losslessly.
import * as import _
_ from 'radashi'
const const crushed: { [x: string]: unknown;}
crushed = import _
_.function crush<{ a: {}; b: never[]; c: { d: {}; };}>(value: { a: {}; b: never[]; c: { d: {}; };}): { [x: string]: unknown;}
Flattens a deep object to a single dimension, converting the keys
to dot notation.
crush({ a: {}
a: {}, b: never[]
b: [], c: { d: {};}
c: { d: {}
d: {} } })// { a: {}, b: [], 'c.d': {} }