深拷贝中遇到对象有键值值为undefined的情况

在网上能找到的方法里面都会忽略掉这个undefined,但事实上这些undefined值也是有意义的,请问有没有办法可以把这些值为undefined的也复制过来。?

阅读 3.9k
2 个回答

undefined 这个值是未定义的意思,在js中没有意思,也不应该用它来表示某些意思。空值应当使用null来表示。

可以复制。你用hasOwnProperty判断key是否存在即可,或者直接用Object.keys()方法

const org = { a: undefined };
const copy = {};
Object.keys(org).forEach(key => {
    copy[key] = origin[key];
});
console.log(copy); // copy: { a: undefined }

目前深拷贝实现的比较好的是lodash的cloneDeep,直接用就好了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题