簡體   English   中英

如何在JavaScript中展平數組?

[英]How to flattening array at javascript?

我有代碼[ 1, 2, 3, fn(), 7, 8 ]

fn接下來fn是:

fn(){ return [ 5, 6 ] }

將哪個運算符應用於fn()調用以獲取:

[ 1, 2, 3, 5, 6, 7, 8 ]

代替:

[ 1, 2, 3, [ 5, 6 ], 7, 8 ]

當然可以:

[ 1, 2, 3, fn(), 7, 8 ].flat()

但是在這種情況下,其他元素也將被展平。 需要為fn()

調用fn傳播到您要創建的數組中:

 const fn = () => [ 5, 6 ]; const arr = [ 1, 2, 3, ...fn(), 7, 8, [9, 10]] console.log(arr); 

flatMap()以數組形式返回輸入數組每個元素的回調函數的值,然后將其展平。 例如,可以使回調返回以下內容:

  • 一對一:返回[ value ]
  • 一對一:返回[]
  • 一對多: return [ valuevalue -5, arbritaryValue ]

在演示中,如果值是數組-它將按原樣返回-否則它將在數組內返回。 本質上,所有值都將從回調作為數組返回,而數組又將被展平。

 const fn = () => [5, 6]; let array = [1, 2, 3, 4, fn(), 7, 8]; const result = array.flatMap(node => Array.isArray(node) ? node : [node]); console.log(result); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM