0.0.1 • Published 8 years ago
keysmap v0.0.1
keysmap
Multiple keys mapping. Allow none-string keys.
what is keysmap
It's map, but a group of multiple keys mapping one value.
eg:
['a', 'b', 'c'] -> v0
['a'] -> v1
['d', 10, {}] -> v2
install
npm i keysmap --save
api
- var map = keysmap();
create map instance
- map.set (keys, value, eq)
Keys object is an array. It's element could be anything.
Eq is function, used to compare two key.
eq = (key1, key2) => {};// return true or false;
- map.get (keys, eq)
Keys object is an array. It's element could be anything.
Eq is function, used to compare two key.
- map.has (keys, eq)
Keys object is an array. It's element could be anything.
Eq is function, used to compare two key.
- map.remove(keys, eq)
Keys object is an array. It's element could be anything.
Eq is function, used to compare two key.
examples
multiple key
var keysmap = require('keysmap')
var map = keysmap();
map.set(['a', 'b', 'c'], 4);
var ret = map.get(['a', 'b', 'c']);
console.log(ret); // 4
empty key
var keysmap = require('keysmap')
var map = keysmap();
map.set([], {a: 1});
var ret = map.get([]);
console.log(ret); // {a: 1}
object keys
var keysmap = require('keysmap')
var map = keysmap();
let obj = {};
map.set([1, obj], 20);
map.get([1, obj]); // 20
custome eq function
var keysmap = require('keysmap');
var jsoneq = require('cl-jsoneq');
var map = keysmap();
map.set(['a', {
b: 30
}], 300);
map.get(['a', {
b: 30
}]); // undefined
map.get(['a', {
b: 30
}], jsoneq); // 300
has and remove api
var keysmap = require('keysmap');
var jsoneq = require('cl-jsoneq');
map.set(['a', 'b'], 20);
map.set([{
k: 3
}], 20);
map.has(['a', 'b']); // true
map.has([{
k: 3
}], jsoneq); // true
map.remove(['a', 'b']);
map.remove([{
k: 3
}], jsoneq);
0.0.1
8 years ago