@taktikorg/quas-praesentium v2.11.84
@taktikorg/quas-praesentium
Safely flatten a nested JavaScript object.
Installation
$ npm i @taktikorg/quas-praesentium
Methods
flatten(obj, delimiter)
Flattens an object to one level deep. Optionally takes a custom delimiter
, otherwise uses .
by default. Circular references within the object will be replaced with [Circular]
.
const { flatten } = require('@taktikorg/quas-praesentium')
const original = {
a: {
b: {
c: [{
val: 'one'
}, {
val: 'two'
}],
d: 'three'
},
e: 'four',
}
}
original.a.b.f = original.a.b
original.a.b.c.push(original.a)
const flat = flatten(original)
/*
{
'a.b.c.0.val': 'one',
'a.b.c.1.val': 'two',
'a.b.c.2': '[Circular]',
'a.b.d': 'three',
'a.e': 'four',
'a.b.f': '[Circular]'
}
*/
const underscoreFlat = flatten(original, '_')
/*
{
'a_b_c_0_val': 'one',
'a_b_c_1_val': 'two',
'a_b_c_2': '[Circular]',
'a_b_d': 'three',
'a_e': 'four',
'a_b_f': '[Circular]'
}
*/
unflatten(obj, delimiter)
Unflattens an object back to its original nested form. Optionally takes a custom delimiter
, otherwise uses .
by default. Circular references denoted by [Circular]
are treated as Strings.
const { unflatten } = require('@taktikorg/quas-praesentium')
const original = {
'a.b.c.0.val': 'one',
'a.b.c.1.val': 'two',
'a.b.c.2': '[Circular]',
'a.b.d': 'three',
'a.e': 'four',
'a.b.f': '[Circular]'
}
const unflat = unflatten(original)
/*{
a:{
b:{
c:[
{
val:'one'
},
{
val:'two'
},
'[Circular]'
],
d:'three',
f:'[Circular]'
},
e:'four'
}
}*/
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
7 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
8 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago