文章插图
文章插图
1、利用JSON对象字符串转换方法(对象中不能有函数,值不能是引用的) 。
function deepCopy(ele) {return JSON.parse(JSON.stringify(ele)); } const obj = {a: {b: [1, [2, [, 3, 4]], { c: 5 }],}, }; const newObj = deepCopy(obj);newObj.a.b[2].c = 6;console.log(newObj.a.b[2].c, obj.a.b[2].c); // 6 5
2、利用递归遍历的方法【js中深拷贝的方法 JS深浅拷贝实现方法】
function deepCopy(ele) {const type = typeof ele;const baseType = ["boolean","number","string","undefined","function",];if (baseType.indexOf(type) > -1 || ele === null) return ele;const newType = Object.prototype.toString.call(ele);if (newType === "[object Array]") {const len = ele.length;if (!len) return [];const res = [];for (let i in ele) {res.push(deepCopy(ele[i]));}return res;}if (newType === "[object Object]") {if (Object.keys(ele).length === 0) return {};const res = {};for (let key in ele) {res[key] = deepCopy(ele[key]);}return res;}} const obj = {a: {b: [1, [2, [, 3, 4]], { c: 5 }],}, };const newObj = deepCopy(obj);newObj.a.b[2].c = 6;console.log(newObj.a.b[2].c, obj.a.b[2].c); // 6 5
- 长沙KTV等娱乐场所恢复营业是真的吗,如何看待长沙娱乐场所恢复营业
- 少年的你确定重映是真的吗,少年的你为什么重映
- 忘记你记得爱情叶芊语和谁是一对,叶芊语结局是怎样的
- 最好的网速管理软件 管理网速的软件
- 一句话高端秀恩爱往后余生,你是我的今天,以及所有的明天
- 可以带对象名字的八字情话
- 早上给女朋友关心的话,要让你天天都能够听到我的早安
- 真正的爱情是什么-你的心就是我的海角和天边
- 撩男生的污味情话,带来甜甜的恋爱
- 关于爱情的经典语言,喜欢你的人会包容你的现在