简介
在本实验中,我们将学习如何在 JavaScript 中创建对象的深度克隆。我们将使用递归克隆原始值、数组和对象,同时排除类实例。在本实验结束时,你将能够创建对象的完整副本而不改变原始对象。
这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 92%。获得了学习者 100% 的好评率。
在本实验中,我们将学习如何在 JavaScript 中创建对象的深度克隆。我们将使用递归克隆原始值、数组和对象,同时排除类实例。在本实验结束时,你将能够创建对象的完整副本而不改变原始对象。
要深度克隆一个对象,请按以下步骤操作:
node以开始练习编码。null,如果是,则返回null。Object.assign()和一个空对象({})来创建原始对象的浅克隆。Object.keys()和Array.prototype.forEach()来确定哪些键值对需要深度克隆。Array,将克隆对象的length设置为原始数组的长度,并使用Array.from()来创建克隆。const deepClone = (obj) => {
if (obj === null) return null;
let clone = Object.assign({}, obj);
Object.keys(clone).forEach(
(key) =>
(clone[key] =
typeof obj[key] === "object" ? deepClone(obj[key]) : obj[key])
);
if (Array.isArray(obj)) {
clone.length = obj.length;
return Array.from(clone);
}
return clone;
};
使用以下代码测试你的深度克隆函数:
const a = { foo: "bar", obj: { a: 1, b: 2 } };
const b = deepClone(a); // a!== b, a.obj!== b.obj
恭喜你!你已经完成了“深度克隆对象”实验。你可以在 LabEx 中练习更多实验来提升你的技能。