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 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | 10930x 10928x 10926x 5464x 5464x 11368x 11368x 11368x 5951x 5417x 6x 5411x 5464x 5462x 5462x 5462x 5501x 5501x 5501x 79x 5422x 6x 5416x 5462x | // @ts-nocheck // Copyright 2019 "David Mark Clements <david.mark.clements@gmail.com>" // MIT Licensed // https://github.com/davidmarkclements/rfdc // Modified by Jay Fong /** * 深克隆快速版。 * * @param value 要克隆的值 * @param ignore 忽略的值 * @returns 返回克隆后的值 * @example * ```typescript * cloneDeepFast({ x: [1] }) * // => { x: [1] } * ``` */ export function cloneDeepFast<T>( value: T, ignore?: (value: unknown) => boolean | undefined, ): T { if (typeof value !== 'object' || value === null) return value if (value instanceof Date) return new Date(value) if (Array.isArray(value)) return cloneArray(value, ignore) const o2 = {} for (const k in value) { Iif (Object.hasOwnProperty.call(value, k) === false) continue const cur = value[k] if (typeof cur !== 'object' || cur === null || (ignore && ignore(cur))) { o2[k] = cur } else if (cur instanceof Date) { o2[k] = new Date(cur) } else { o2[k] = cloneDeepFast(cur, ignore) } } return o2 } function cloneArray(a, ignore) { const keys = Object.keys(a) const a2 = new Array(keys.length) for (let i = 0; i < keys.length; i++) { const k = keys[i] const cur = a[k] if (typeof cur !== 'object' || cur === null || (ignore && ignore(cur))) { a2[k] = cur } else if (cur instanceof Date) { a2[k] = new Date(cur) } else { a2[k] = cloneDeepFast(cur, ignore) } } return a2 } |