2.0.7 • Published 4 years ago
pointed-map v2.0.7
Pointed Map
The much faster way of filtering and finding objects through Maps
Implement with your project
npm i pointed-map --saveInitiation
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);