Map
object with native filter
, map
,reduce
, every
, and some
methods. Zero Dependencies.
https://www.npmjs.com/package/mafp
Maps don’t have these methods natively. One would first need to copy an iterator into an array [...iterator]
before using .map
, .filter
, .reduce
. MaFP allows you to use those methods natively.
npm install mafp
yarn add mafp
const MaFP = require("mafp").default;
const test = new MaFP([
["A", true],
["B", false],
["C", true],
["D", true],
]);
import MaFP from "mafp";
// Diamond notation needed if no arguments are provided
const test = new MaFP<string, boolean>();
// OR with arguments, types are inferred.
const test = new MaFP([
["A", true],
["B", false],
["C", true],
["D", true],
]);
test.filter(val => val);
// MaFP [Map] { 'A' => true, 'C' => true, 'D' => true }
test.filterToArray(val => val);
// [ 'A', true ], [ 'C', true ], [ 'D', true ] ]
test.map(val => !val);
// MaFP [Map] { 'A' => false, 'B' => true, 'C' => false, 'D' => false }
test.mapToArray(val => !val);
// [ [ 'A', false ], [ 'B', true ], [ 'C', false ], [ 'D', false ] ]
test.reduce((acc, curr) => acc + Number(curr), 0);
// 3
test.every(val => val);
// false
test.some(val => val);
// true
Also works with .keys()
and .values()
:
test.keys().filter(key => key !== 'B');
// [ 'A', 'C', 'D' ]
// ETC...