JavaScript:Map
TypeScript Signature
// ES2015
interface Map<K, V> {
clear(): void;
delete(key: K): boolean;
forEach(callbackfn: (value: V, key: K, map: Map<K, V>) => void, thisArg?: any): void;
get(key: K): V | undefined;
has(key: K): boolean;
set(key: K, value: V): this;
readonly size: number;
}
interface Map<K, V> {
/** Returns an iterable of entries in the map. */
[Symbol.iterator](): IterableIterator<[K, V]>;
/**
* Returns an iterable of key, value pairs for every entry in the map.
*/
entries(): IterableIterator<[K, V]>;
/**
* Returns an iterable of keys in the map
*/
keys(): IterableIterator<K>;
/**
* Returns an iterable of values in the map
*/
values(): IterableIterator<V>;
}
Simple example
It supports the same functionality as Object, and more, with a slightly different syntax:
// Adding an item (a key-value pair):
people.set("John", { firstName: "John", lastName: "Doe" });
// Checking for the presence of a key:
people.has("John"); // true
// Retrieving a value by a key:
people.get("John").lastName; // "Doe"
// Deleting an item by a key:
people.delete("John");
Convert Map to json
export class RoiInfoDictionary {
elems: Map<string, RoiInfo>;
constructor(json?: string) {
this.elems = new Map<string, RoiInfo>();
if (json) {
this.fromJson(json);
}
}
toJson(): string {
let jsonObject = {};
this.elems.forEach((value, key) => {
jsonObject[key] = value;
});
return JSON.stringify(jsonObject);
}
fromJson(json: string): void {
let jsonObject = JSON.parse(json);
this.elems.clear();
for (const value in jsonObject) {
this.elems.set(value, jsonObject[value]);
}
}
}