maplicious

1.0.3 • Public • Published

super-map

An Extended Map (with some array methods)

Install

As normal, you can use npm

npm i super-map

or yarn

yarn super-map

Don't forget to use --save/add do add the dependency to your project.

Usage

You can use SuperMap as a normal Map, but import it first ;)

import SuperMap from 'super-map';

NOTE: If you like, you can just import as Map, and use it where you were already using the native Map (import Map from 'super-map';)

After this, just use as you would use the native Map:

const superMap = new SuperMap();
const array = [1, 2, 3];
const object = { asd: 123, qwe: 456 };

superMap.set(array, object);
console.log(superMap.size); // 1
console.log(superMap.has(array)); // true
const value = superMap.get(array);
console.log(value === object); // true
console.log(superMap.delete('potatoes')); // false
superMap.forEach(console.log);
// { asd: 123, qwe: 456 }, [1, 2, 3], SuperMap
for (const entry of superMap.entries()) {
	console.log(entry); // [[1, 2, 3], { asd: 123, qwe: 456 }]
}
superMap.clear();
console.log(superMap.size); // 0

Array like

But, with SuperMap you can use some Array methods.

superMap.find((value, key, self) => key === array);
// [[1, 2, 3], { asd: 123, qwe: 456 }]
superMap.filter((value, key, self) => key === array);
// SuperMap instance with the filtered entries
superMap.reduce(
	(acc, value, key, self) => acc + value.asd + value.qwe,
	0
);
// 579
superMap.map((value, key, self) => value);
// [{ asd: 123, qwe: 456 }]

HINT: The map method works well with frameworks like reactjs ;)

Properties & Methods

Properties Description
size similar Map.prototype.size
length similar Array.prototype.length
Methods Description
clear similar Map.prototype.clear
delete similar Map.prototype.delete
entries similar Map.prototype.entries
forEach similar Map.prototype.forEach
get similar Map.prototype.get
has similar Map.prototype.has
keys similar Map.prototype.keys
set similar Map.prototype.set
values similar Map.prototype.values
@@iterator similar Map.prototype[@@iterator]
filter* similar Array.prototype.filter
find* similar Array.prototype.find
map* similar Array.prototype.map
reduce* similar Array.prototype.reduce
* on all Array like methods, the callback receives the key instead of index.

TODO

  • Tests, of course
  • Implement more Array like methods (e.g. concat, every, some and sort)

Readme

Keywords

none

Package Sidebar

Install

npm i maplicious

Weekly Downloads

35

Version

1.0.3

License

MIT

Unpacked Size

14.3 kB

Total Files

4

Last publish

Collaborators

  • anmo