es6陣列的flat(),flatMap()函式用法例項分析
阿新 • • 發佈:2020-04-20
本文例項講述了es6陣列的flat(),flatMap()函式用法。分享給大家供大家參考,具體如下:
陣列的成員有時還是陣列,Array.prototype.flat()用於將巢狀的陣列“拉平”,變成一維陣列。該方法返回一個新陣列,對原資料沒有影響。
[1,2,[3,4]].flat() // [1,3,4]
上面程式碼中,原陣列的成員裡面有一個數組,flat()方法將子陣列的成員取出來,新增在原來的位置。
flat()預設只會“拉平”一層,如果想要“拉平”多層的巢狀陣列,可以將flat()方法的引數寫成一個整數,表示想要拉平的層數,預設為1。
[1,[4,5]]].flat() // [1,5]] [1,5]]].flat(2) // [1,4,5]
上面程式碼中,flat()的引數為2,表示要拉平兩層的巢狀陣列。
如果不管有多少層巢狀,都要轉成一維陣列,可以用Infinity關鍵字作為引數。
[1,[2,[3]]].flat(Infinity) // [1,3]
如果原陣列有空位,flat()方法會跳過空位。
[1,5].flat() // [1,5]
flatMap()方法對原陣列的每個成員執行一個函式,相當於執行Array.prototype.map(),然後對返回值組成的陣列執行flat()方法。該方法返回一個新陣列,不改變原陣列。
// 相當於 [[2,4],6],8]].flat() [2,4].flatMap((x) => [x,x * 2]) // [2,6,8]
flatMap()只能展開一層陣列。
感興趣的朋友可以使用線上HTML/CSS/JavaScript程式碼執行工具:http://tools.jb51.net/code/HtmlJsRun測試上述程式碼執行效果。
更多關於JavaScript相關內容可檢視本站專題:《javascript面向物件入門教程》、《JavaScript錯誤與除錯技巧總結》、《JavaScript資料結構與演算法技巧總結》、《JavaScript遍歷演算法與技巧總結》及《JavaScript數學運算用法總結》
希望本文所述對大家JavaScript程式設計有所幫助。