展开多维数组(Array.prototype.flat) 的实现

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]

你可能感兴趣的:(展开多维数组(Array.prototype.flat) 的实现)