maplicious
v1.0.3
Published
An Extended Map (with some array methods)
Downloads
17
Readme
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
andsort
)