2.0.1 • Published 9 months ago

@lexriver/json-map v2.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

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)
2.0.1

9 months ago

2.0.0

9 months ago

1.0.1

9 months ago

1.0.0

5 years ago