扁平数组
-
扁平数组可能是我们工作中常用的,Array提供了一个flag方法可以实现。但是我们自己如何实现呢?
-
实现方式一,使用递归+concat【concat可以扁平一层数组】
function myFlat(array=[]){
let isDeep = array.some(item => item instanceof Array)
if (!isDeep) return array
let res = Array.prototype.concat.apply([],array)
return myFlat(res)
}
- 实现方式二,递归
function myFlat2(arr=[],res = []){
for (let item of arr){
if (item instanceof Array){
myFlat2(item,res)
}else {
res.push(item)
}
}
return res
}