Files
oops-plugin-framework/assets/libs/collection/Collection.ts
dgflash 5937f2faf5 1、优化语法
2、修复更新后的API注释
2024-09-04 21:23:53 +08:00

53 lines
1.2 KiB
TypeScript

/*
* @Author: dgflash
* @Date: 2022-07-22 15:54:51
* @LastEditors: dgflash
* @LastEditTime: 2022-09-22 14:47:59
*/
/** 支持Map与Array功能的集合对象 */
export class Collection<K, V> extends Map<K, V>{
private _array: V[] = [];
/** 获取数组对象 */
get array() {
return this._array;
}
/**
* 设置值
* @param key 关键字
* @param value 数据值
*/
set(key: K, value: V) {
if (this.has(key)) {
var old = this.get(key)!;
var index = this._array.indexOf(old);
this._array[index] = value;
}
else {
this._array.push(value);
}
return super.set(key, value);
}
/**
* 删除值
* @param key 关键字
*/
delete(key: K): boolean {
const value = this.get(key);
if (value) {
const index = this._array.indexOf(value);
if (index > -1) this._array.splice(index, 1);
return super.delete(key);
}
return false;
}
clear(): void {
this._array.splice(0, this._array.length);
super.clear();
}
}