// 拷贝对象或者数组
function clone(object, deep = true) {
if (object === null || typeof object !== "object") {
return object;
}
let result = new object.constructor();
for (const key in object) {
if (object.hasOwnProperty(key)) {
const element = object[key];
if (deep) {
result[key] = clone(element, deep);
} else {
result[key] = element;
}
}
}
return result;
}
//测试代码
let arrayTest = [
[1, 2], 2, 'asdf', {
a: 'dog'
},
function() {
console.log('s');
}
];
console.log(clone(arrayTest, true));
let objTest = {
a: {
b: {
dog: '123454657'
}
},
s: [123, 2343],
d: function() {
console.log('s');
}
}
console.log(clone(objTest, true));
JS 深拷贝与浅拷贝
最新推荐文章于 2024-10-18 18:45:21 发布
该文章提供了一个JavaScript函数,用于实现对象和数组的深拷贝。函数首先检查输入是否为对象,然后递归地复制所有属性,包括嵌套的对象和数组,以创建一个新的独立副本。测试代码展示了如何对包含不同数据类型的复杂结构进行拷贝。
摘要由CSDN通过智能技术生成