淺拷貝
1. 對於陣列型別,可以使用slice(start, end)方法,返回乙個新的陣列。var arr1 = arr.slice(0);
(備註:slice 方法一直複製到 end 所指定的元素,但是不包括該元素。如果 start 為負,將它作為 length + start處理,此處 length 為陣列的長度。如果 end 為負,就將它作為 length + end 處理,此處 length 為陣列的長度。如果省略 end ,那麼 slice 方法將一直複製到 arrayobj 的結尾。如果 end 出現在 start 之前,不複製任何元素到新陣列中。
陣列型別還可以使用concat()方法,var arr1 = arr.concat();
(備註:
concat() 方法用於連線兩個或多個陣列。 該方法不會改變現有的陣列,而僅僅會返回被連線陣列的乙個副本。
對於物件型別,可以使用object.assign({},obj),拷貝到乙個新的物件上。
2. 使用es6語法的擴充套件運算子,就是...
let arr1 = [...arr];
let obj1 = ;
深拷貝1.通過json.stringify()和json.parse()方法。(弊端:不能拷貝function等)
// 通過js的內建物件json來進行陣列物件的深拷貝
function deepclone2(obj)
2. 遍歷,就是把物件的屬性遍歷一遍,賦給乙個新的物件。
function clonedeep5(x) ;
// 棧
const looplist = [
];while(looplist.length) ;
}for(let k in data) );
} else }}
}return root;
}
陣列深拷貝 js深拷貝的幾種方法
1.使用遞迴 使用遞迴的方式實現陣列 物件的深拷貝function deepclone obj 進行深拷貝的不能為空,並且是物件 if obj typeof obj object else return objclone 2.通過json物件 通過js的內建物件json來進行陣列物件的深拷貝func...
js淺拷貝及深拷貝的幾種方法
object.assign我們經常會用到合併物件,當然利用object.assign性質我們也可以實現物件的拷貝。var obj1 var obj2 object.assign obj1 obj2.a 4 console.log obj1,obj2 結果如圖 這裡要注意的是object.assign...
JS中實現深拷貝的幾種方法
一,物件深拷貝的幾種方法 1.使用遞迴的方式實現深拷貝 1 function deepclone obj 3 if obj typeof obj object else 10 11 12 return objclone 13 2.通過json物件實現深拷貝 function deepclone2 o...