日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java递归深度克隆_递归方法实现深度克隆原理:遍历对象、数组直到里边都是基本数据类型,然后再去复制,就是深度拷贝。...

發布時間:2025/3/20 编程问答 18 豆豆

手寫遞歸方法

//定義檢測數據類型的功能函數

function checkedType(target) {

return Object.prototype.toString.call(target).slice(8, -1)

}

//實現深度克隆---對象/數組

function clone(target) {

//判斷拷貝的數據類型

//初始化變量result 成為最終克隆的數據

let result,

targetType = checkedType(target)

if (targetType === 'object') {

result = {}

} else

if (targetType === 'Array') {

result = []

} else {

return target

}

//遍歷目標數據

for (let i in target) {

//獲取遍歷數據結構的每一項值。

let value = target[i]

//判斷目標結構里的每一值是否存在對象/數組

if (checkedType(value) === 'Object' || checkedType(value) === 'Array') {

//對象/數組里嵌套了對象/數組

//繼續遍歷獲取到value值

result[i] = clone(value)

} else {

//獲取到value值是基本的數據類型或者是函數。

result[i] = value;

}

}

return result

}

不用手寫也可以實現

JSON.parse(JSON.stringify())

原理: 用JSON.stringify將對象轉成JSON字符串,再用JSON.parse()把字符串解析成對象,一去一來,新的對象產生了,而且對象會開辟新的棧,實現深拷貝。

這種方法雖然可以實現數組或對象深拷貝,但不能處理函數。

總結

以上是生活随笔為你收集整理的java递归深度克隆_递归方法实现深度克隆原理:遍历对象、数组直到里边都是基本数据类型,然后再去复制,就是深度拷贝。...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。