flat 多維陣列 拉平 ,變成一維陣列

2021-10-01 08:45:05 字數 994 閱讀 6499

array.flat()用於將巢狀的陣列「拉平」,變成一維的陣列。該方法返回乙個新陣列,對原資料沒有影響。

var arr =[,

[,[,

]]]//flat()預設只會「拉平」一層,拉平多層可以將flat()方法的引數寫成乙個整數,表示想要拉平的層數。

arr.

flat()

;// => 拉平一層[,

,[,]

]//如果不管有多少層巢狀,都要轉成一維陣列,可以用infinity關鍵字作為引數。

arr.

flat

(infinity);

// => 不管多少層,都要轉成一維陣列[,

,,]

array.flatmap()方法對原陣列的每個成員執行乙個函式,然後對返回值組成的陣列執行flat()方法。該方法返回乙個新陣列,不改變原陣列。

// 相當於 [[2, 4], [3, 6], [4, 8]].flat()[2

,3,4

].flatmap

((x)

=>

[x, x *2]

);// => [2, 4, 3, 6, 4, 8]

//flatmap()只能展開一層陣列。

// 相當於 [[[2]], [[4]], [[6]], [[8]]].flat()[1

,2,3

,4].

flatmap

(x =>

[[x *2]

]);// => [[2], [4], [6], [8]]

//上面**中,遍歷函式返回的是乙個雙層的陣列,但是預設只能展開一層,因此flatmap()返回的還是乙個巢狀陣列。

//flatmap()方法的引數是乙個遍歷函式,該函式可以接受三個引數,分別是當前陣列成員、當前陣列成員的位置(從零開始)、原陣列。

多維陣列 「 拉平 「 實現一維陣列

背景 前兩天專案中遇到個問題,通過雙層map迴圈 await請求資料最終得到了乙個二維陣列,但是實際我想要的是二維陣列裡的那些物件,需要構建成乙個一維陣列 因為我要通過v for去迴圈顯示 資料 當然了,二維陣列轉一維陣列的方法其實有很多,但是當多維 三維 四維等 呢?難不成迴圈 遞迴嗎?所以我就在...

多維陣列變一維陣列

判斷是否是陣列 let isarr arr arr instanceof array 判斷是否一維陣列 let istdim arr arr.reduce o1,o2 o1 isarr o2 true 多維陣列變一維陣列function name return a console.log name ...

一維陣列變多維陣列

1.雙層filter過濾 第一層 item 定義為father newarr接收 第一層過濾出最頂層陣列 判斷 brancharr的長度 存在father.children brancharr 否則為空 return father.pid 0 第二層 item 定義為child brancharr接...