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