陣列扁平化(降維過程,多維陣列經過扁平化變成一維陣列)。
方法有很多,下面只列舉幾種
方法一:
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...