陣列,物件的拷貝方式(深拷貝和淺拷貝)

2021-10-09 14:57:40 字數 699 閱讀 1369

引言typeof 檢測arr或者物件的時候只會返回 object

引用資料型別:一般來說就是函式 物件 陣列

1.遞迴方式

function isobject(obj)

var deepclone=function(obj)

return num //最後返回num

}console.log(deepclone([123,123,[123,123]]))

a1=var a=object.assign(a1,})

console.log(a)

2.json.parse(json.stringify(obj))

注意這個方法有缺陷,其一是他會丟失函式的內容。

詳細可以去查詢相關的文件,過段時間我應該也會寫一篇這樣的文件。狗頭保命~~~~

原理就是先把obj 物件(陣列)轉化為 字串 然後再轉化回來,然後儲存給乙個新的變數,

var obj=[12,123,[123],]

var newobj=json.parse(json.stringify(obj))

console.log(newobj)

擴充套件運算子 …

這個方法只可以對沒有巢狀多層陣列的陣列使用,所以放到後面講

。。。後續有待時間來寫,上面的深複製已經總結完了的 手動狗頭保命······嘻嘻嘻

前端的深拷貝和淺拷貝 前端面試 深拷貝和淺拷貝

面試題目 如何實現對乙個陣列或物件的淺拷貝和深拷貝?wtf,複製還分兩種,第一次遇到這種問題的時候很是無語呢,先來看看一般的答案的理解。淺拷貝是只拷貝一層,深層次的物件級別就只拷貝引用。深拷貝是拷貝多層,每一級別的資料都拷貝出來。也就是說,基本資料型別其實不存在深淺拷貝的問題,只有物件和陣列才存在深...

vue物件深拷貝 vue陷阱 深拷貝vs淺拷貝

案例重現 看下面的乙個例子 data this.info m this.info.attr1 8 console.log m 這是vue的部分 我們猜測m會輸出什麼,你會驚奇的發現m會和this.info繫結,也就是對this.info.attr1的修改,會導致m的值變化,控制台輸出的結果是 att...

陣列和物件的淺拷貝和深拷貝

前言 對於拷貝需要考慮資料的型別 資料型別分為 基本資料型別和引用型別 基本資料型別是儲存在棧中的簡單資料 常見 string,number,undefined,null,boolean以及es6新定義的symbol 引用型別值是引用型別例項,它是儲存在堆中的乙個物件,引用型別是一中資料結構 常見 ...