在es6中,可以利用flat()方法將二維數組轉為一維數組,該方法會預設「拉平」一層數組,可以利用參數設定要轉換的層數,該方法只傳回一個新的數組,不會更改原數組,語法為「二維數組.flat()」。
本教學操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。
#方法:flat();可接受參數2,3,4.....,Infinity;
flat ():
1.負責將多維數組--->一維數組。此方法傳回一個新的數組,對原始資料沒有影響。
[1,2,[2,3],[2,2]].flat() //[1, 2, 2, 3, 2, 2]
2.flat()預設只會「平整」一層,預設為1,如果想要「拉平」多層的嵌套數組,可以將flat()方法的參數寫成整數,表示想要拉平的層數。
[1, 2, [3, [4, 5]]].flat() // [1, 2, 3, [4, 5]] [1, 2, [3, [4, 5]]].flat(2) // [1, 2, 3, 4, 5]
3.如果不管有多少層嵌套,都要轉成一維數組,可以用Infinity關鍵字當參數。
如果原始數組有空位,flat()方法會跳過空位。
[1, [2, [3,4]]].flat(Infinity) // [1, 2, 3, 4] [1, 2, , 4, 5].flat() // [1, 2, 4, 5]
範例如下:
const a = [1, 2, 3, 4, 3]; const b = [3, 4, [5, 6]]; const c = [3, 4, [5, 6, [7, 8]]]; // 不传默认是二维数组降一维数组 console.log(a.concat(b).flat()); // 打印为[1, 2, 3, 4, 3, 3, 4, 5, 6] console.log(a.concat(c).flat(3)) // 打印为[1, 2, 3, 4, 3, 3, 4, 5, 6, 7, 8] // 如果数组嵌套太过复杂可直接传值Infinity console.log(a.concat(c).flat(Infinity)) // 打印为[1, 2, 3, 4, 3, 3, 4, 5, 6, 7, 8]
【相關推薦:javascript影片教學、web前端】
以上是es6二維數組怎麼轉一維數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!