题目:浅复制和深复制?怎样实现深复制?
出题人:阿里巴巴新零售技术质量部
参考答案:
参考代码;
const isObject = (item)=>{
return Object.prototype.toString.call(item) === '[object Object]';
}
const isArray = (item)=>{
return Object.prototype.toString.call(item) === '[object Array]';
}
const deepClone=(obj)=>{
const cloneObj=isArray(obj)?[]:isObject(obj)?{}:'';
for(let key in obj){
if(isObject(obj[key])||isArray(obj[key])){
Object.assign(cloneObj,{
[key]: deepClone(Reflect.get(obj,key))
});
}
else{
cloneObj[key] = obj[key];
}
}
return cloneObj;
}
PS:可以处理这样的格式,仅处理了对象类型和数组类型
const obj111 ={
a:1,
b:{
c:2,
d:{
e:3
},
f:[1,{a:1,b:2},3]
}
}
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/geek/post/%E9%9D%A2%E8%AF%95/05.%E7%BE%8E%E5%9B%A2%E7%AF%87/5.2.0-%E6%B5%85%E5%A4%8D%E5%88%B6%E5%92%8C%E6%B7%B1%E5%A4%8D%E5%88%B6%E6%80%8E%E6%A0%B7%E5%AE%9E%E7%8E%B0%E6%B7%B1%E5%A4%8D%E5%88%B6/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com