flatMap - nodef/extra-object GitHub Wiki

Flatten nested object, using map function.

Similar: flat, flatMap.

function flatMap(x, fm, ft)
// x:  a nested object
// fm: map function (v, k, x)
// ft: test function (v, k, x)
const object = require('extra-object');

var x = {ab: {a: 1, b: 2}, cde: {c: 3, de: {d: 4, e: {e: 5}}}};
object.flatMap(x);
// → { a: 1, b: 2, c: 3, de: { d: 4, e: { e: 5 } } }

object.flatMap(x, v => object.flat(v, 1));
// → { a: 1, b: 2, c: 3, d: 4, e: { e: 5 } }

object.flatMap(x, v => object.flat(v));
// → { a: 1, b: 2, c: 3, d: 4, e: 5 }

References