JS拷貝的幾種方法

2021-09-12 21:08:13 字數 1021 閱讀 6557

淺拷貝

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...