js演算法算出陣列或物件深度

2021-10-23 17:11:37 字數 593 閱讀 2926

有時候我們要計算陣列或物件裡面包含了多少個巢狀陣列或物件,我這裡稱為深度,文字不好理解 演示一下資料格式

const a =

, d:}}

//這個最大深度就為3,a物件包含了c,此時深度為2,但d又包含了乙個物件,這時我稱為深度為3

遞迴我就不介紹了,該演算法就是利用函式遞迴

function

getdeep

(obj)}}

// 迴圈結束後判斷arr有沒有增加

if(arr.length > arrlength)

else

return res

}return

fn(obj)

}

該演算法使用的fon in 迴圈,同樣適用於求陣列深度,

例如

const arr =[1

,2,3

,]getdeep

(arr)

//3

arr裡面包含了乙個物件也就是arr[3],此時深度為2,arr[3]又包含了乙個陣列,深度為3

我覺得肯定還有改進的地方,希望有大佬可以指點

js判斷陣列或物件是否相等

驗證兩個object 是否相同 param obj 需要進行驗證的資料1 param newobj 需要進行驗證的資料2 function objsame obj,newobj for let key in obj else if obj key instanceof array else if o...

js深度轉殖物件

用js實現物件轉殖最關鍵的兩點就是 var objclone new this.constructor 和objclone key this key clone 乙個實現相同物件建立,乙個實現深度轉殖。object.prototype.clone function else for var key ...

js物件深度拷貝

js中物件是引用資料型別,如果我們只是簡單的把物件a通過等號複製給物件b,那麼物件a b指向的還是同乙個位址,這是改變a,b也會跟著改變。var a var b a b.a 2 console.log a.a 2這並不是我們想要看到的,一般我們想要的拷貝乙個物件就是想要相互不影響兩個物件。也就是深度...