代码如下:
export const deepClone = (o) => {
switch (true) {
case ['string', 'number', 'boolean', 'undefined'].includes(typeof o):
return o
case Array.isArray(o):
return o.map(item => (deepClone(item)))
case typeof o === 'object': {
const _o = {}
for (const key in o) {
_o[key] = deepClone(o[key])
}
return _o
}
}
}
平时用的比较多的场景,基础数据类型、数组、对象,不考虑function的特殊情况,上次阿里子公司三面让我手写,写了一半,这次先整理出来,以防万一。
欢迎各位大佬的批评指正,必定洗耳恭听,不断完善。