使用js实现一个深拷贝操作请不要使用JSONstringifyconst obj = arr key1 name1 1 name2 2 key2 value string value
可以使用递归来实现深拷贝操作,递归地复制对象的每一个属性和子属性。
function deepClone(obj) {
if (typeof obj !== 'object' || obj === null) {
return obj;
}
let clone = Array.isArray(obj) ? [] : {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
clone[key] = deepClone(obj[key]);
}
}
return clone;
}
const obj = {
arr: [
{ name1: 1, name2: 2 },
'value'
],
string: 'value'
};
const cloneObj = deepClone(obj);
console.log(cloneObj);
输出结果:
{
arr: [
{ name1: 1, name2: 2 },
'value'
],
string: 'value'
}
这样就实现了一个深拷贝的操作
原文地址: https://www.cveoy.top/t/topic/ixtW 著作权归作者所有。请勿转载和采集!