flattenDeep 函数 把嵌套的数组扁平化

372 阅读1分钟

flattenDeep 函数 把嵌套的数组扁平化

Array.prototype.flat=function(deep){
    const result=[];
    const arr=Array.from(this);
    const isNumber=typeof deep==='number';
    arr.forEach((value,index,all)=>{
        if(isNumber&&deep<0) return;
        if(Array.isArray(value)){
            result.push(...value.flat(deep-1));
        }else{
            result.push(value);
        }
    })
    return result
}
function flattenDeep(arr){
    return arr.reduce((result,val)=>Array.isArray(val)?result.concat(flattenDeep(val)):result.concat(val),[])
}
function flattenDeep(arr,deep){
    return arr.flat(deep)
}