方法一、apply結合concat拉平數組
let arr=[[1,2,3],[4,5],[6]]; console.log([].concat.apply([],arr)); //輸出 [1, 2, 3, 4, 5, 6]
上面的方法是使用apply結合concat,缺點是只能將二維轉一維,多維數組就有問題了
方法二、ES6新增數組擴展 flat()
[1, 2, [3, 4]].flat()
flat()默認只會“拉平”一層,如果想要“拉平”多層的嵌套數組,可以將flat()方法的參數寫成一個整數,表示想要拉平的層數,默認為1。
如果我們不知道數組究竟層級有多深我們可以用Infinity關鍵字作為參數
[1, [2, [3]]].flat(Infinity) // [1, 2, 3]
。