简单实现深拷贝(不考虑function场景)

214 阅读1分钟

代码如下:

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的特殊情况,上次阿里子公司三面让我手写,写了一半,这次先整理出来,以防万一。

 欢迎各位大佬的批评指正,必定洗耳恭听,不断完善。