es6 数组扁平化
數組的成員有時還是數組,Array.prototype.flat()用于將嵌套的數組“拉平”,變成一維數組。該方法返回一個新數組,對原數據沒有影響。
[1, 2, [3, 4]].flat() // [1, 2, 3, 4]
上面代碼中,原數組的成員里面有一個數組,flat()方法將子數組的成員取出來,添加在原來的位置。
flat()默認只會“拉平”一層,如果想要“拉平”多層的嵌套數組,可以將flat()方法的參數寫成一個整數,表示想要拉平的層數,默認為1。
[1, 2, [3, [4, 5]]].flat() // [1, 2, 3, [4, 5]] [1, 2, [3, [4, 5]]].flat(2) // [1, 2, 3, 4, 5]
上面代碼中,flat()的參數為2,表示要拉平兩層的嵌套數組。
如果不管有多少層嵌套,都要轉成一維數組,可以用Infinity關鍵字作為參數。
[1, [2, [3]]].flat(Infinity) // [1, 2, 3]
如果原數組有空位,flat()方法會跳過空位。
flatMap()方法對原數組的每個成員執行一個函數,相當于執行Array.prototype.map(),然后對返回值組成的數組執行flat()方法。該方法返回一個新數組,不改變原數組。
flatMap()只能展開一層數組。
?
總結
- 上一篇: 朗月照花
- 下一篇: VR 、SR 轴矢冠三个切面的显示