javascript實現陣列或物件的深拷貝

2021-09-12 15:21:47 字數 776 閱讀 1934

第一(簡單粗暴):

let arr = [1, ];

let copyarr = json.parse( json.stringify(arr) );

console.log(copyarr ) // [1, ]

arr[1].a = 3;

console.log(copyarr ) // [1, ]

copyarr[1].a = 5;

console.log(arr) // [1, ]

可以看出來,改變原陣列arr,並沒有對新陣列copyarr產生影響;改變新陣列copyarr也沒有對原陣列arr產生影響;

第二(面試官大多數會問這種方法):

let arr = [1, ];

function deepcopy(arr) ; // 判斷是陣列還是物件

for(let i in arr) else

}return copyarr;

}let copyarr = deepcopy(arr);

console.log(copyarr ) // [1, ]

arr[1].a = 3;

console.log(copyarr ) // [1, ]

copyarr[1].a = 5;

console.log(arr) // [1, ]

同樣:改變原陣列arr,並沒有對新陣列copyarr產生影響;改變新陣列copyarr也沒有對原陣列arr產生影響;

Javascript實現對Json陣列排序

一 適用於數字排序和字元排序 最簡單的一種 var sortby function filed,rev,primer if a b if a b return 1 var obj 數字排序 obj.sort sortby b false,parseint console.log obj 字元排序 o...

JavaScript 如何實現陣列的隨機排序?

第一種方法。math.random 返回介於 0 包含 1 不包含 之間的乙個隨機數。這種方法是迴圈過程中通過math.random 函式產生的隨機值,在陣列中這個隨機值位置的數和arr i 位置的資料交換,迴圈結束,產生隨機數組。第二種方法。splice 方法用於插入 刪除或替換陣列的元素。注意 ...

JavaScript實現陣列去重方法總結

已知 var arr 1,2,3,4,5,6,5,4,3,7,8,9,8,7,6,5,4,6,7 將陣列中重複的元素去除掉 實現原理 用陣列後面的成員和前面的成員進行對比,如果有相同的,就用splice方法刪掉後面相同的成員,用兩層迴圈巢狀實現後面的成員和前面成員比較 程式展示 var arr 1,...