前端面试题 - 119. 手写数组扁平化函数flat

133 阅读1分钟

实现如下效果的数组打平函数:

let arr = [
  1,
  [ 2, 3, 4 ],
  [ 5, [ 6, [ 7, [ 8 ] ] ] ]
]
console.log(flat(arr)) // [1,2,3,4,5,6,7,8]

原生的实现方法:无限层级打平就行

function flat(arr) { 
    return arr.flat(Infinity); 
}

也可以循环并递归调用

function flat(arr) { 
    return arr.reduce((result, item) => {
        return result.concat(Array.isArray(item) ? flat(item) : item);
    }, []); 
}