嵌套json 深拷贝—代码示例

jsonjiaocheng

温馨提示:这篇文章已超过239天没有更新,请注意相关的内容是否还可用!

嵌套JSON深拷贝是指复制一个JSON对象及其嵌套的子对象,而不是仅仅复制引用。这样做的目的是为了避免在修改复制的对象时对原始对象产生影响。在JavaScript中,可以使用递归的方式实现嵌套JSON的深拷贝。

以下是一个示例代码,展示了如何实现嵌套JSON的深拷贝:

function deepCopy(obj) {

if (typeof obj !== 'object' || obj === null) {

return obj;

}

let copy = Array.isArray(obj) ? [] : {};

for (let key in obj) {

if (obj.hasOwnProperty(key)) {

copy[key] = deepCopy(obj[key]);

}

}

return copy;

}

// 原始JSON对象

let originalObj = {

name: 'John',

age: 25,

address: {

city: 'New York',

country: 'USA'

}

};

// 深拷贝JSON对象

let copiedObj = deepCopy(originalObj);

// 修改拷贝后的对象

copiedObj.name = 'Mike';

copiedObj.address.city = 'Los Angeles';

console.log(originalObj); // { name: 'John', age: 25, address: { city: 'New York', country: 'USA' } }

console.log(copiedObj); // { name: 'Mike', age: 25, address: { city: 'Los Angeles', country: 'USA' } }

在上述代码中,`deepCopy`函数用于实现嵌套JSON的深拷贝。该函数首先判断传入的参数是否为对象,如果不是对象或为null,则直接返回该值。如果是对象,则根据其类型创建一个空的副本,然后递归地拷贝每个属性值。返回拷贝后的对象。

通过调用`deepCopy`函数,我们可以将原始的JSON对象`originalObj`深拷贝到`copiedObj`中。修改`copiedObj`的属性值不会影响到`originalObj`,因为它们是两个完全独立的对象。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码