redmine-time-manager/src/logic/utils.ts
Pavel Gnedov 83fded6ab8 dev
2022-02-06 23:58:17 +07:00

34 lines
793 B
TypeScript

export function invert(obj: Record<any, any>): Record<any, any> {
const newObj = {};
let key;
for (key in obj) {
if (!obj.hasOwnProperty(key)) continue;
const value = obj[key];
// @ts-ignore
newObj[value] = key;
}
return newObj;
}
export function uniq<T>(src: T[]): T[] {
const res = [];
let i: number;
for (i = 0; i < src.length; i++) {
const value = src[i];
if (res.indexOf(value) < 0) {
res.push(value);
}
}
return res;
}
export function assign(target: Record<string, any>, src: Record<string, any>): Record<string, any> {
let key: string;
for (key in src) {
if (src.hasOwnProperty(key)) {
console.debug('rewrite key:', key, ' with value:', src[key]); // DEBUG
target[key] = src[key];
}
}
return target;
}