There was an error while loading. Please reload this page.
Flatten nested map, based on map function.
Alternatives: flat, flatMap.
function flatMap(x, fm, ft) // x: a nested map // fm: map function (v, k, x) // ft: test function for flatten (v, k, x) [is]
const map = require('extra-map'); var x = new Map([ ['ab', new Map([ ['a', 1], ['b', 2] ])], ['cde', new Map([ ['c', 3], ['de', new Map([ ['d', 4], ['e', new Map([ ['e', 5] ])] ])] ])] ]); map.flatMap(x); // → Map(4) { // → 'a' => 1, // → 'b' => 2, // → 'c' => 3, // → 'de' => Map(2) { 'd' => 4, 'e' => Map(1) { 'e' => 5 } } // → } map.flatMap(x, v => map.flat(v, 1)); // → Map(5) { // → 'a' => 1, // → 'b' => 2, // → 'c' => 3, // → 'd' => 4, // → 'e' => Map(1) { 'e' => 5 } // → } map.flatMap(x, v => map.flat(v)); // → Map(5) { 'a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5 }