1.淺拷貝
var obj1 =測試圖示:}var obj2 ={};
//淺拷貝只拷貝第一層屬性,引用型別資料位址是相同的---因此存在資料共享問題
//遍歷obj1
for (var key in
obj1)
//深拷貝---解決資料共享問題
function deepcopy(source, target) ; //
判斷是陣列還是物件
deepcopy(source[key], target[key]);//
遞迴---對source[key]一層層拷貝
} else}}
}//測試
deepcopy(obj1, obj2);
console.log(obj1);
obj2.skill.push("ui");
console.log(obj2);
2.陣列去重
//測試圖示:陣列去重---去除陣列中重複的資料
var arr = [10, 5, 2, 4, 10, 3, 2, 1, 4, 1, "a", "d", "a"];
function
distinctarray(arr)
}return
newarray;
}console.log(distinctarray(arr));
深拷貝的 淺拷貝講解以及示例
含義 假設b複製了a,當修改a時,看b是否會發生變化,如果b也跟著變了,說明這是淺拷貝,如果b沒變,那就是深拷貝。關於棧堆,就要了解基本資料型別與引用資料型別,因為這些概念能更好的讓你理解深拷貝與淺拷貝 let a 0,1,2,3,4 b a console.log a b true a 0 1 c...
陣列拷貝(深拷貝 淺拷貝)
底層都是使用system.arraycopy object src,int srcpos,object dest,int destpos,int length 方法完成陣列元素拷貝任務的 方法說明 如果newlength original.length,那麼會將原陣列中前newlength個元素拷貝...
陣列深拷貝 物件的深拷貝 陣列去重
1 for 迴圈實現陣列的深拷貝 var arr 1,2,3,4,5,6 var arr2 copyarr arr function copyarr arr var obj2 copyobj obj function copyobj obj for var key in obj return res...