Package Exports
- pointed-map
- pointed-map/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (pointed-map) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Pointed Map
The much faster way of filtering and finding objects through Maps
Implement with your project
npm i pointed-map --save
Initiation
const PointedMap = require('pointed-map');
// The properties that the pointed map should make pointers to
const map = new PointedMap(null, ['bar']);
// PointedMap extends Map, use anything as a key
// Values MUST be objects
const foo = {
bar: 'Lorem'
};
map.set('anykey', foo);
// Returns the first matching value
map.getOneBy('bar', 'Lorem');
// Returns all matching values in an array
map.getBy('bar', 'Lorem');
// Returns all matching values in a new PointedMap
// with the same pointed properties
map.filterBy('bar', 'Lorem');
Good to know
getBy()
andgetOneBy()
have the same speed
Usage
// Method 1:
const map = new PointedMap(null, ['bar']);
map.set('anykey', { foo: 'ipsum', bar: 'Lorem' });
// Method 2:
const entries = [
// [ key, value ]
['anykey', { foo: 'ipsum', bar: 'Lorem' }]
];
const map = new PointedMap(entries, ['foo', 'bar']);
.getOneBy(property, value)
Arguments:
- property:
string
- value:
any
Returns: object
|| undefined
const got = map.getOneBy('bar', 'Lorem');
console.log(got.foo);
.getBy(property, value)
Arguments:
- property:
string
- value:
any
Returns: Array<object>
|| undefined
map.getBy('bar', 'Lorem').forEach(x => {
console.log(x.foo);
});
.filterBy(property, value)
Arguments:
- property:
string
- value:
any
Returns: PointedMap<key, object>
Info: The property will not be pointed to in the returned PointedMap
getBy()
will always be faster than filterBy()
const filtered = map.filterBy('bar', 'Lorem');
const got = filtered.getOneBy('foo', 'ipsum');
console.log(got);