全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

如何通过js实现深拷贝

发布时间:2023-05-23 17:48:00
发布人:qyf

  实现深拷贝可以避免对象之间的引用关系,当原始对象的属性值发生变化时,深拷贝后的对象不受影响。

  以下是通过 JavaScript 实现深拷贝的几种方式:

  手动实现深拷贝

function deepClone(obj) {
if (typeof obj !== 'object' || obj === null) {
return obj;
}
let result;
if (Array.isArray(obj)) {
result = [];
for (let i = 0; i < obj.length; i++) {
result.push(deepClone(obj[i]));
}
} else {
result = {};
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
result[key] = deepClone(obj[key]);
}
}
}
return result;
}

  使用 JSON 序列化和反序列化实现深拷贝

const newObj = JSON.parse(JSON.stringify(oldObj));

 

  需要注意的是,这种方式不支持复制函数、正则等特殊对象。

  使用第三方库如 Lodash 实现深拷贝

const newObj = _.cloneDeep(oldObj);

  以上几种方式可以根据实际情况进行选择,手动实现深拷贝较为灵活,而使用 JSON 序列化和反序列化效率较高,使用第三方库则更为便捷。

相关文章

python写入json文件?

python写入json文件?

2023-11-02
vscode设置tab为4个空格?

vscode设置tab为4个空格?

2023-11-02
更新pycharm?

更新pycharm?

2023-11-02
anaconda每次打开都要安装?

anaconda每次打开都要安装?

2023-11-02

最新文章

武汉新媒体行业公司排名

武汉新媒体行业公司排名

2023-11-01
武汉新媒体就业现状好吗

武汉新媒体就业现状好吗

2023-11-01
武汉全媒体行业发展现状及趋势

武汉全媒体行业发展现状及趋势

2023-10-31
武汉全媒体现状

武汉全媒体现状

2023-10-31
在线咨询 免费试学 教程领取