@extra-map/flat-map.min

Flattens nested map, using map function. :package: :smiley_cat: :running: :vhs: :moon: :scroll: :newspaper: :blue_book:

Usage no npm install needed!

<script type="module">
  import extraMapFlatMapMin from 'https://cdn.skypack.dev/@extra-map/flat-map.min';
</script>

README

Flattens nested map, using map function. :package: :smiley_cat: :running: :vhs: :moon: :scroll: :newspaper: :blue_book:

Alternatives: flat, flatMap.

This is part of package extra-map.

This is browserified, minified version of @extra-map/flat-map.
It is exported as global variable map_flatMap.
CDN: unpkg, jsDelivr.


map.flatMap(x, [fm], [ft]);
// x:  a nested map
// fm: map function (v, k, x)
// ft: test function (v, k, x)
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 }


References