数组flat实现

利用数组的reduce和concat实现数组flat,并可传参

Array.prototype.flat = function(deep = 1) {
    if(typeof deep !== 'number') {
        throw new TypeError('深度参数必须为数字类型')
    }
    if(deep === 0) return this
    let arr1 = this
    return arr1.reduce((acc, val) => {
        console.log(deep)
        if(Array.isArray(val) && deep > 1) {
            console.log(acc)
            return acc.concat(val.flat(--deep))
        } else {
            return acc.concat(val)
        }
    }, []);// [1, 2, 3, 4]
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容