在 JavaScript 中處理複雜的資料結構時,建立陣列的深層副本通常會很有幫助,而不是建立陣列的深層副本。淺薄的參考。這可確保對克隆副本的變更不會影響原始數組,反之亦然。
使用結構化複製
現代深度克隆數組的方法是使用StructuredClone 方法:
array2 = structuredClone(array1);
此方法大多數現代瀏覽器都支持,提供可靠的深度克隆機制。
如果StructuredClone 不可用,您可以使用基於JSON 的技術:
let clonedArray = JSON.parse(JSON.stringify(nodesArray))
此方法適用於JSON 可序列化的對象,這意味著它們可以轉換為JSON 字串並返回。但是,它可能不適合具有函數或某些資料類型的複雜物件。
對於淺層對象,使用 Spread 運算子與 Map 結合可以提供更好的效能:
clonedArray = nodesArray.map(a => ({...a}))
此技術為數組中的每個元素創建一個新對象,確保對克隆的更改不會影響
克隆對象數組的最佳方法取決於您的特定要求。為了獲得可靠的深度複製,建議使用 StructuredClone。對於 JSON 可序列化對象,JSON.parse 和 JSON.stringify 提供了靈活的選項。對於淺層對象,擴充運算子和映射方法提供更好的效能。
以上是如何在 JavaScript 中深度複製物件數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!