本篇介紹 ES2019 (ES10) 提供的 :Array method flat()
和 flatMap()
。
Array.prototype.flat()
的 flat 其實是「flattens」的簡寫,有展開、攤平的意思。
但攤平陣列是什麼意思?直接來看簡單的範例:
let array = [[1, 2], [3, 4], [5, 6]];
console.log(array.flat());
// [1, 2, 3, 4, 5, 6]
flat()
負責把二維的巢狀陣列攤平變成一維陣列。
那如果陣列內,同時有二維陣列和三維陣列呢?該怎麼處理?這就要看你的需求了。
假設你只想攤平一層,只要直接使用 flat()
即可,如下範例:
let array = [[1, 2], [3, 4], [[5, 6]] ];
console.log(array.flat());
// [1, 2, 3, 4, [5, 6]]
如果想全部攤平,就要使用 flat()
的參數 depth
:
let array = [[1, 2], [3, 4], [[5, 6]] ];
console.log(array.flat(2));
// [1, 2, 3, 4, 5, 6]
depth
參數代表的是指定攤平的深度。
Array.prototype.{flat,flatMap}
| Exploring ES2018 and ES2019