物件,陣列的深複製

2022-05-16 21:33:32 字數 985 閱讀 4525

如果物件的屬性值不是乙個物件的引用

object.assign
function (obj)

for(var key in obj)

return newobj;

}

2.即使物件的屬性是物件也可以

function deepcopy(obj)

for(var key in obj)else

return newobj

}

迴圈拷貝

var arr = [1,2,3,4,5]

var arr2 = copyarr(arr)

function copyarr(arr)

return res

}

2.concat方法

var arr = [1,2,3,4,5]

var arr2 = arr.concat()

arr[2] = 5

console.log(arr)

console.log(arr2)

let test = [1, 2, 3, ]

function deep(arr) else )}}

return newarr

}

let test = 

function deep(obj) ;

for (var i in obj) else

}return newobj

}

function deep(obj) ;

for (var i in obj) else

}return newobj

}

我也基本測試了,希望大佬們看到錯誤指出來

發現一篇文章很不錯

動態陣列類 物件的淺複製 物件深複製

1.將動態陣列封裝成類 include include using namespace std class point point int x,int y x x y y point int getx const int gety const void move int newx,int newy ...

物件和陣列的淺複製和深複製

之前踩過一些複製的坑,現在總結一下記錄下來,供以後開發時參考,相信對其他人也有用。淺複製 一般用object.assign,如果支援es6的話也可以用新語法 const obj 可以用object.assign const obj2 object.assign obj1 es6的解構 const o...

物件或者陣列的深複製與淺複製的區別

深複製 比如b複製了a,b修改了a則不會修改 淺複製 比如b複製了a,b修改了a也會跟著改變 以上就是深淺複製的區別 下面直接插入 深度複製直接暴力快速解決 let aaaobj 這裡是深度複製aaaobj let bbbobj json.parse json.stringify aaaobj 分割...