楼上说的递归
const deepClone = obj => {
let cloneObj = {};
for (let key in obj) {
if (typeof obj[key] === "object" && typeof obj[key] !== "null") {
cloneObj[key] = deepClone(obj[key]);
} else {
cloneObj[key] = obj[key];
}
}
return cloneObj;
};
var personalDetail = {
name: "Nishant",
address: {
location: "xyz",
zip: "123456",
phoneNumber: {
homePhone: 8797912345,
workPhone: 1234509876
}
}
};
console.log(deepClone(personalDetail));
time complexity: O(n)
本文向大家介绍深度克隆对象的方法有哪些,并把你认为最好的写出来相关面试题,主要包含被问及深度克隆对象的方法有哪些,并把你认为最好的写出来时的应答技巧和注意事项,需要的朋友参考一下 我比较喜欢使用原生的方法,足够简单,而且可以解决大多数的深拷贝。
deepClone 对象深度克隆 注意 由于JS对象包括的范围非常广,加上ES6又有众多的新特性,很难、也没必要做到囊括所有的类型和情况,这里说的"对象",指的是普通的对象,不包括修改对象原型链, 或者为"Function","Promise"等的情况,请留意。 场景: 我们平时可能会遇到需要通过console.log打印一个对象,至执行打印的时刻,此对象为空,后面的逻辑中对此对象进行了修改赋值,
问题 你想复制一个对象,包含其所有子对象。 解决方案 clone = (obj) -> if not obj? or typeof obj isnt 'object' return obj if obj instanceof Date return new Date(obj.getTime()) if obj instanceof RegExp flags
本文向大家介绍对象深度克隆的简单实现?相关面试题,主要包含被问及对象深度克隆的简单实现?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: ES5的常用的对象克隆的一种方式。注意数组是对象,但是跟对象又有一定区别,所以我们一开始判断了一些类型,决定newObj是对象还是数组~
本文向大家介绍深入了解Java对象的克隆,包括了深入了解Java对象的克隆的使用技巧和注意事项,需要的朋友参考一下 今天要介绍一个概念,对象的克隆。本篇有一定难度,请先做好心理准备。看不懂的话可以多看两遍,还是不懂的话,可以在下方留言,我会看情况进行修改和补充。 克隆,自然就是将对象重新复制一份,那为什么要用克隆呢?什么时候需要使用呢?先来看一个小栗子: 简单起见,我们这里用的是Goo
如果我克隆了以下类的一个实例,并在实例化时覆盖了一个方法,克隆会有被覆盖的方法吗?我在https://docs.oracle.com/javase/7/docs/api/java/lang/Cloneable.html和https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#clone()中没有找到任何关于这种行为的内容。