1.1.3 • Published 3 years ago

javasetmap.ts v1.1.3

Weekly downloads
6
License
MIT
Repository
github
Last release
3 years ago

Travis npm David

javasetmap.ts

Java-style Set and Map collections (on { hashCode(): int, equals(x: any): boolean} objects) written in TypeScript.

Installation

NPM: npm install javasetmap.ts --save

In the browser, you can include the UMD bundle in a script tag, and the module will be available under the global javasetmap_ts

Usage

import {JavaMap} from 'javasetmap.ts'
// node: const {JavaMap} = require('javasetmap.ts')
// browser: const {JavaMap} = nla

declare global { // remove this block if not using TypeScript
    interface Array<T> extends Equalable {}
    interface Number extends Equalable {}
}
Array.prototype.equals = function (o) { 
    return this == o || this.length == o.length && this.every((el, i) => el.equals(o[i])) 
}
Array.prototype.hashCode = function () { 
    return this.reduce((acc, current) => acc * 31 + current.hashCode(), 0) 
}
Number.prototype.equals = function (o) { return this == o }
Number.prototype.hashCode = function () { return this | 0 }

const myMap = new JavaMap<[number, number], string>() // new JavaMap() if not using TypeScript

myMap.set([1, 2], "foo")
myMap.has([1, 2]) // === true
myMap.get([1, 2]) // === "foo"
myMap.has([1, 3]) // === false
myMap.get([2, 1]) // === undefined

LICENSE MIT

1.1.3

3 years ago

1.1.2

3 years ago

1.1.1

4 years ago

1.1.0

7 years ago

1.0.0

7 years ago