js陣列扁平化 flatten

2022-07-29 14:39:13 字數 997 閱讀 8570

陣列扁平化(降維過程,多維陣列經過扁平化變成一維陣列)。

方法有很多,下面只列舉幾種

方法一:

es6的 arr.flat(infinity)方法會遞迴到指定深度將所有子陣列連線,並返回乙個新陣列, depth指定巢狀陣列中的結構深度,預設值為1,不管多少層則可以用infinity關鍵字作為引數。

//陣列扁平化

let arr = ['a', 2, [3, 'b', 5, [6, 7], 8], 9, 10, [11, [12, 13]]];

console.log(arr.flat(infinity)) //["a", 2, 3, "b", 5, 6, 7, 8, 9, 10, 11, 12, 13]

方法二:

遞迴實現

//陣列扁平化

let arr = ['a', 2, [3, 'b', 5, [6, 7], 8], 9, 10, [11, [12, 13]]];

//①遞迴實現

let result = ;

let flatten = function(ary) else

}return result

}console.log('遞迴實現---',flatten(arr)) //["a", 2, 3, "b", 5, 6, 7, 8, 9, 10, 11, 12, 13]

方法三:

擴充套件運算子

//陣列扁平化

let arr = ['a', 2, [3, 'b', 5, [6, 7], 8], 9, 10, [11, [12, 13]]];

//利用擴充套件運算子

function flatten(arr)

console.log(arr)

return arr;

}console.log('擴充套件運算子---',flatten(arr)) //["a", 2, 3, "b", 5, 6, 7, 8, 9, 10, 11, 12, 13]

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

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

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

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

js 陣列扁平化

陣列扁平化是指將乙個多維陣列變為一維陣列 遍歷陣列arr,若arr i 為陣列則遞迴遍歷,直至arr i 不為陣列然後與之前的結果concat 遍歷陣列每一項,若值為陣列則遞迴遍歷,否則concat。function flatten arr 1,2,3,4,5 1,2,3,4,5 2.1.reduc...