1.0.3 • Published 5 years ago
maplicious v1.0.3
super-map
An Extended Map (with some array methods)
Install
As normal, you can use npm
npm i super-mapor yarn
yarn super-mapDon'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); // 0Array 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,someandsort)