展开多维数组(Array.prototype.flat) 的实现
2020-01-08 本文已影响0人
AvenKe
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]