陣列的複製的時候,如果是多維陣列,進行拷貝的時候,修改新資料會影響到老資料
深度拷貝
let newdata = json.parse(json.stringify(data.data));
let writedata = json.parse(json.stringify(data.data));
console.log("newdata:", newdata);
for (let i = 0; i < writedata.length; ++i)
console.log(writedata);
console.log(data.data);
上面的處理方法就是深度拷貝了 js物件深度拷貝
js中物件是引用資料型別,如果我們只是簡單的把物件a通過等號複製給物件b,那麼物件a b指向的還是同乙個位址,這是改變a,b也會跟著改變。var a var b a b.a 2 console.log a.a 2這並不是我們想要看到的,一般我們想要的拷貝乙個物件就是想要相互不影響兩個物件。也就是深度...
js實現深度拷貝
js實現拷貝,使用普通賦值物件,在操作其中乙個物件值的時候,另乙個也會更改,不符合需求 因此引入深度拷貝,以下為實現深度拷貝的幾種法 合併多個物件 var target var source1 var source2 object.assign target,source1,source2 注意 這...
js深度拷貝與淺度拷貝
如果你想真正自己理解和運用深度轉殖的話,首先必須要了解的就是js中的原始值和引用值,以及它們的儲存位置及方式。這裡簡單的說一下,原始值是儲存在棧裡的,而且儲存的是變數的實際值。引用值儲存在堆裡,且儲存的是乙個指標,該指標指向記憶體中的某個位置,該位置儲存變數的實際值。var a 2 var a co...