Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 1x 73x 123x 1x 58x 1x 36x 36x 36x 20x 20x 20x 36x 1x 32x | export function parsePath(path: string): string[] { return path .replace(/\[([^[\]]*)\]/g, '.$1.') .split('.') .filter(t => t !== '') } export function get(obj: object, path: string): any { return parsePath(path).reduce((prev, cur) => prev && prev[cur], obj) } export function set(obj: object, path: string, value: any): void { const paths = parsePath(path) let cur = obj for (let i = 0; i < paths.length - 1; i++) { const pname = paths[i] if (!cur.hasOwnProperty(pname)) cur[pname] = {} cur = cur[pname] } cur[paths[paths.length - 1]] = value } export function copy(dest: object, source: object, path: string): void { set(dest, path, get(source, path)) } |