数组拍平

1.数组拍平就是将数组里面的数组打开,最后合并为一个数组

2.实现

var arr = [1,2,[3,4,5,[6,7,8],9],10,[11,12]];

a:递归实现

let arr1 = [];
     function fn(arr){
         arr.forEach((val)=>{
             if(val instanceof Array){
                 arr1.concat(fn(val))
              }else{
                  arr1.push(val)
              }
          })
          return arr1
     }

b:reduce实现

function fn(arr){
    return arr.reduce((prev,cur)=>{
        return prev.concat(Array.isArray(cur)?fn(cur):cur)
    },[])
}

c:flat 

参数为层数(默认一层)

arr.flat(Infinity)

猜你喜欢

转载自www.cnblogs.com/guan-shan/p/10165737.html