flat() 方法會按照乙個可指定的深度遞迴遍歷陣列,並將所有元素與遍歷到的子陣列中的元素合併為乙個新陣列返回。
語法
const newarray = arr.
flat
(depth)
解釋
引數 含義 必選
depth 指定要提取巢狀陣列的結構深度,預設值為 1 n
示例
const numbers =[1
,2,[
3,4,
[5,6
]]]console.
log(numbers.
flat()
)// [1, 2, 3, 4, [5, 6]]
注意
此時 flat 的引數沒有設定,取預設值 1,也就是說只扁平化向下一級,遇到 [3, 4, [5, 6]] 這個陣列會扁平會處理,不會再繼續遍歷內部的元素是否還有陣列
const numbers =[1
,2,[
3,4,
[5,6
]]]console.
log(numbers.
flat(2
))// [1, 2, 3, 4, 5, 6]
當 flat 的引數大於等於 2,返回值就是 [1, 2, 3, 4, 5, 6] 了。
flatmap() 方法首先使用對映函式對映每個元素,然後將結果壓縮成乙個新陣列。從方法的名字上也可以看出來它包含兩部分功能乙個是 map,乙個是 flat(深度為1)。
語法
const new_array = arr.
flatmap
(function
callback
(currentvalue[
, index[
, array]])
[, thisarg])
解釋
引數 含義 必選
callback 可以生成乙個新陣列中的元素的函式,可以傳入三個引數:currentvalue、index、array y
thisarg 遍歷函式 this 的指向 n
示例
const numbers =[1
,2,3
]numbers.
map(x =>
[x *2]
)// [[2], [4], [6]]
numbers.
flatmap
(x =>
[x *2]
)// [2, 4, 6]
這個示例可以簡單對比下 map 和 flatmap 的區別。當然還可以看下下面的示例:
let arr =
['今天天氣不錯',''
,'早上好'
]arr.
map(s => s.
split(''
))// [["今", "天", "天", "氣", "不", "錯"],[""],["早", "上", "好"]]
arr.
flatmap
(s => s.
split(''
))// ["今", "天", "天", "氣", "不", "錯", "", "早", "上", "好"]
陣列扁平化
原陣列 const arr 1,2,3,4 5,6,7,8 9 希望輸出 1,2,3,4,5,6,7,8,9 方法一 遞迴 function arrdelayering arr else return newarr let newarr arrdelayering arr 1,2,3,4,5,6,7...
陣列扁平化
今天看到了陣列扁平化處理,猶記得之前面試被問到過,下面介紹一下陣列扁平化處理的幾種形式 題目要求 將陣列 arr 1,2,3,4,5,6,7,8,9 轉化為 1,2,3,4,5,6,7,8,9 1 遞迴 var arr 1,2,3,4,5,6,7,8,9 方法一 遞迴 function flatfu...
扁平化陣列
第一次遇到陣列扁平化已經是在3k遊戲的筆試題裡,當時是用了遞迴的方法。因為對一些陣列方法,字串方法十分的不熟練 扁平化陣列的核心都是,遍歷陣列元素,遇到陣列就拆,不是陣列就加進去。var arr 1,2,3,4,5 console.log bianpinghua arr tostring split...