, :
class MyMap {
private map = new Map<string, number>();
set(key: [number, number], value: number): this {
this.map.set(JSON.stringify(key), value);
return this;
}
get(key: [number, number]): number | undefined {
return this.map.get(JSON.stringify(key));
}
clear() {
this.map.clear();
}
delete(key: [number, number]): boolean {
return this.map.delete(JSON.stringify(key));
}
has(key: [number, number]): boolean {
return this.map.has(JSON.stringify(key));
}
get size() {
return this.map.size;
}
forEach(callbackfn: (value: number, key: [number, number], map: Map<[number, number], number>) => void, thisArg?: any): void {
this.map.forEach((value, key) => {
callbackfn.call(thisArg, value, JSON.parse(key), this);
});
}
}
( )
, forEach, , [number, number] , .
:
let map = new MyMap();
map.set([1, 2], 4);
console.log(map.get([1, 2]))
map.set([3, 4], 20);
map.forEach((v, k) => console.log(k, v));