陣列扁平化(flatten)實現方案

2021-10-20 16:26:44 字數 799 閱讀 8790

[1,2,3,[1,2,3,[1,2]]] => [1, 2, 3, 1, 2, 3, 1, 2]
上面的轉換就是陣列的扁平化,將乙個巢狀多層的陣列 array 轉換為只有一層的陣列。 下面是實現陣列扁平化的幾種簡單方法。

function flatten1(arr)

flatten2([1,2,3,[1,2,3,[1,2]]])//[1, 2, 3, 1, 2, 3, 1, 2]

function flatten3(arr),)

}flatten3([1,2,3,[1,2,3,[1,2]]])//[1, 2, 3, 1, 2, 3, 1, 2]

function flatten4(arr) 

flatten4([1,2,3,[1,2,3,[1,2]]])//[1, 2, 3, 1, 2, 3, 1, 2]

會按照乙個可指定的深度遞迴遍歷陣列,並將所有元素與遍歷到的子陣列中的元素合併為乙個新陣列返回。

//infinity 無窮大, -infinity無窮小

function flatten5(arr)

flatten5([1,2,3,[1,2,3,[1,2]]])//[1, 2, 3, 1, 2, 3, 1, 2]

function flatten6(arr)

flatten6([1,2,3,[1,2,3,[1,2]]])//[1, 2, 3, 1, 2, 3, 1, 2]

js陣列扁平化 flatten

陣列扁平化 降維過程,多維陣列經過扁平化變成一維陣列 方法有很多,下面只列舉幾種 方法一 es6的 arr.flat infinity 方法會遞迴到指定深度將所有子陣列連線,並返回乙個新陣列,depth指定巢狀陣列中的結構深度,預設值為1,不管多少層則可以用infinity關鍵字作為引數。陣列扁平化...

實現陣列扁平化 flatten 迭代遞迴

顧名思義,扁平化就是二維或者多維陣列,轉成一維陣列的過程。舉個栗子,就是將下列陣列arr1變成陣列arr2 arr1 1 2,3,4 5 arr2 1 2,3 4,5 flatten flattendepth flattendeep 都是用於對資料的扁平化處理,不同之處在於扁平化的層級。flatte...

陣列扁平化

原陣列 const arr 1,2,3,4 5,6,7,8 9 希望輸出 1,2,3,4,5,6,7,8,9 方法一 遞迴 function arrdelayering arr else return newarr let newarr arrdelayering arr 1,2,3,4,5,6,7...