首頁 >web前端 >前端問答 >es6二維數組怎麼轉一維數組

es6二維數組怎麼轉一維數組

WBOY
WBOY原創
2022-04-25 16:57:493315瀏覽

在es6中,可以利用flat()方法將二維數組轉為一維數組,該方法會預設「拉平」一層數組,可以利用參數設定要轉換的層數,該方法只傳回一個新的數組,不會更改原數組,語法為「二維數組.flat()」。

es6二維數組怎麼轉一維數組

本教學操作環境:windows10系統、ECMAScript 6.0版、Dell G3電腦。

es6二維陣列怎麼轉一維陣列

#方法: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn