栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

说说你对深浅拷贝的理解?并实现一个对数组和对象深拷贝的方法

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

说说你对深浅拷贝的理解?并实现一个对数组和对象深拷贝的方法

function deepClone(val) {  function getType(_val) {    return Object.prototype.toString.call(_val).replace(/[[s]]|(object)/g, '')  }  const valType = getType(val);  if (valType !== 'Object' && valType !== 'Array') return val  let output = {}  if (valType === 'Array') {    output = []    val.forEach(v => {      const curValType = getType(v)      if (curValType === 'Array' || curValType === 'Object') {        output.push(deepClone(v))      } else {        output.push(v)      }    })  } else if (valType === 'Object') {    Object.keys(val).forEach(v => {      const curValType = getType(v)      if (curValType === 'Array' || curValType === 'Object') {        output[v]= (deepClone(val[v]))      } else {        output[v]= (val[v])      }    })  }  return output}const obj = {  a: 1,  b: [    {      b1: 'b1',      b2: {        b2_1: 'b2_1'      }    }  ]}const clone = deepClone(obj)obj.b = { b: 'b' }console.log(clone)console.log(obj)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/370838.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号