tft每日頭條

 > 生活

 > js深拷貝的三種實現方式

js深拷貝的三種實現方式

生活 更新时间:2025-01-20 01:12:12

js深拷貝的三種實現方式?1、利用JSON對象字符串轉換方法(對象中不能有函數,值不能是引用的),我來為大家講解一下關于js深拷貝的三種實現方式?跟着小編一起來看一看吧!

js深拷貝的三種實現方式(js實現深拷貝的方法)1

js深拷貝的三種實現方式

1、利用JSON對象字符串轉換方法(對象中不能有函數,值不能是引用的)。

function deepCopy(ele) {        return JSON.parse(JSON.stri.jpg"y(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、利用遞歸遍曆的方法

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

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved