js的tree陣列物件扁平化思否 js陣列的扁平化

2021-10-13 01:41:38 字數 1055 閱讀 5361

陣列扁平化

const a = [[1], [3, [4, 5, [6, 7]]], [8], [9, [2, 10]]]

方法1:遞迴

迴圈陣列元素,如果還是乙個陣列,就遞迴呼叫該方法

function flatten1(arr) else {

//注意concat 和push 方法的返回值不同

//res=res.concat(arr[i]);

res.push(ary[i])

return res;

方法2:

使用reduce來簡化方法1的**:

function flatten2(arr){

return arr.reduce((prev, cur) => prev.concat(array.isarray(cur) ? flatten2(cur) : cur),)

方法3:

tostring方法轉成字串,split方法把字串切割成陣列,字串拼接方法

function flatten3(arr){

return arr.tostring().split(',').map(item=> +item)

方法4:

some則當其中乙個返回true,則最終結果為true, 相當於邏輯運算子||。

function flatten4(arr){

while(arr.some(item => array.isarray(item))){

arr = .concat(...arr);

return arr;

方法5:

every方法表示當陣列每個元素在判定函式中都返回true,則最終結果為true,相當於邏輯運算子 &&

function flatten5(arr) {

while (!arr.every(item => typeof item === 'number' && !isnan(item))) {

arr = .concat(...arr);

console.log(arr);

return arr;

console.log(...a)

js 陣列扁平化

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

js陣列扁平化

所謂陣列扁平化,就是將乙個二維或多維陣列轉換為一維陣列。比如將 1,2 3,4,5 轉化為 1,2,3,4,5 1 首先想到設定乙個空陣列,如果原陣列中的每一項不是陣列,直接push進去,如果是陣列,就與這個空陣列進行連線 實現 let flatarr arr else return result ...

JS 陣列扁平化

假如有乙個陣列 var arr 1,2,3,4 我們怎麼能把arr變成 1,2,3,4 呢?即讓多維陣列降維,轉換為只有一層的陣列。1.迴圈陣列 遞迴 function flatten arr else return result flatten arr 1,2,3,4 var arr 1 2,3,...