JavaScript 实现深拷贝
function deepCopy(o) {
if (typeof o !== "object") return o;
let n;
if (Array.isArray(o)) {
n = new Array(o.length);
o.forEach((v,i) => (n[i] = deepCopy(v)));
}
// reg math function 等其他类型暂时不考虑
else if (!Array.isArray(o)) {
n = {};
Object.keys(o).forEach(key => {
n[key] = deepCopy(o[key]);
});
}
return n;
}
const a = {
a: [
1,
[4],
{
a: {
c: [4]
}
}
]
}
const b = deepCopy(a);
a.c = "c";
console.log(a);
console.log(b);
console.log(a.c);
console.log(b.c);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论