UNPKG

tian-yan-yan

Version:

一套不算好用的组件

62 lines (46 loc) 1.28 kB
/* * 深拷贝 * @author: 张文 * @date 2022-02-16 * */ import {cloneDeep} from "lodash/lang"; /** * 深拷贝 * @author 张文 * @param {*} data 需要拷贝的原始数据 * @return {*} 返回拷贝后的数据 * * */ export function DeepCopy(data) { // 用于判断当前数据是否为DOM对象,没有深拷贝,可能会存在变量改变的风险 /*if (data instanceof Element) { return data }*/ // 文档:https://www.lodashjs.com/docs/lodash.cloneDeep return cloneDeep(data) /*if (useLodash) { return cloneDeep(data) } // 非对象直接返回 if (typeof data !== 'object') { return data } // 用于判断当前数据是否为DOM对象 if (data instanceof Element) { return data } // 判断复制的目标是数组还是对象 const copy = Array.isArray(data) ? [] : {}; for (let keys in data) { // 不读取对象的私有属性 if (/^_/.test(keys)) break // 如果值是对象或者数组,就递归一下 if (data[keys] && typeof data[keys] === 'object') { copy[keys] = tyDeepCopy(data[keys]); } else { // 如果不是,就直接赋值 copy[keys] = data[keys]; } } return copy;*/ }