Skip to content

Anmo/super-map

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

About

An Extended Map (with some array methods)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published