export class MapPolyfill {
public size = 0;
private _values = [];
private _keys = [];
get(key) {
let i = this._keys.indexOf(key);
return i === -1 ? undefined : this._values[i];
}
set(key, value) {
let i = this._keys.indexOf(key);
if (i === -1) {
this._keys.push(key);
this._values.push(value);
this.size++;
} else {
this._values[i] = value;
}
return this;
}
delete(key) {
let i = this._keys.indexOf(key);
Iif (i === -1) { return false; }
this._values.splice(i, 1);
this._keys.splice(i, 1);
this.size--;
return true;
}
forEach(cb, thisArg) {
for (let i = 0; i < this.size; i++) {
cb.call(thisArg, this._values[i], this._keys[i]);
}
}
} |