@lexriver/json-map
v2.0.1
Published
Use object as a key for Map
Downloads
4
Readme
json-map
This package provides class JsonMap<K,V> which has interface similar to Map<K,V> but keys could be Objects.
Install
npm install @lexriver/json-map
Import
import { JsonMap } from '@lexriver/json-map'
Usage
// create new map with key type {name:string, age:number} and number as a value
let valueByPerson = new JsonMap<{name:string, age:number}, number>()
valueByPerson.set({name:'John', age: 10}, 100)
valueByPerson.set({name:'Smith', age: 20}, 200)
valueByPerson.get({name:'John', age: 10}) // 100
valueByPerson.get({name:'John', age: 20}) // undefined
valueByPerson.get({name:'Smith', age: 20}) // 200
valueByPerson.get({name:'smith', age: 20}) // undefined
Methods
constructor
let myMap = new JsonMap<K, V>()
K and V could be of any type including Object
iterate
const myMap = new JsonMap<Object, number>()
for(const [key,value] of myMap){
// ...
}
// or...
for(const [key,value] of myMap.entiries()){
// ...
}
// or...
myMap.forEach((key:Object, value:number) => {
// ...
})
get(key:K):V|undefined
Get value by key. Returns undefined
if key not found.
myMap.get({name:'John', age:10})
set(key:K, value:V):JsonMap<K,V>
Create or update value for key.
myMap.set({name:'John', age:10}, 100)
has(key:K):boolean
Check if map has a key.
myMap.has({name:'John', age:10})
delete(key:K):boolean
Delete one item by key.
myMap.delete({name:'John', age:10})
clear():void
Remove all items from map.
myMap.clear()
size:number
Get count of items in map.
myMap.size
keys():IterableIterator
Get all keys in map.
for(const key of myMap.keys()){
//...
}
values():IterableIterator
Get all values in map.
for(const value of myMap.values()){
// ...
}
toArray():[K,V][]
Get map as array.
myMap.toArray()
initFromArray(initValue:Iterable<readonly [K,V]>|readonly [K,V][])
Fill map with keys and values from array.
myMap.initFromArray(mySavedArray)
toJsonString(pretty:boolean=false):string
Get map as json string.
myMap.toJsonString(true)
initFromJsonString(jsonString:string):JsonMap<K,V>
Fill map with keys and values from json string.
myMap.initFromJsonString(mySavedJsonString)