Array.prototype.flat是指将多维数组展开为一维数组,例如
[0, [1], [[2]], [[[3]]]].flat() => [0, 1, 2, 3]
截止目前(2020年1月)为止,该方法还处于草稿阶段,也就是说不是所有版本的浏览器都支持flat方法,具体浏览器支持如下:
| Browser | version |
|---|---|
| Chrome | 69 |
| Safari | 69 |
| Firefox | 62 |
| Edge | No |
| IE | No |
| Opera | 12 |
| Android webview | 69 |
| Chrome for Android | 62 |
| Safari for IOS | 12 |
| Node.js | 11.0.0 |
具体实现如下:
function flatArra(arr){
const flatten = [];
(function flat(input){
input.forEach(one => {
if(Array.isArray(one)){
flat(one);
} else {
flatten.push(one);
}
})
})(arr)
return flatten;
}
flatArra([0, [1], [[2]]]) // [0, 1, 2]