@uk/tool
Version:
Uk tools module
23 lines (21 loc) • 629 B
text/typescript
export class ArrayMap<TKey, TVal> extends Map<TKey, TVal> {
find(cb: (val: TVal, key: TKey)=> boolean): TVal | undefined {
for (const pair of this) {
if (cb(pair[1], pair[0])) return pair[1];
}
}
filter(cb: (val: TVal, key: TKey)=> boolean): TVal[] {
const rv = [];
for (const pair of this) {
if (cb(pair[1], pair[0])) rv.push(pair[1]);
}
return rv;
}
map<T>(cb: (val: TVal, key: TKey)=> T): T[] {
const rv = [];
for (const pair of this) {
rv.push(cb(pair[1], pair[0]));
}
return rv;
}
}