1. 递归的方法实现

  1. // 使用递归的方法实现
  2. let arr = [1, 3, 5, [24, 52], 2, [23, [3, [6], 7], 2]]
  3. function _flat(arr, deepth) {
  4. if (!Array.isArray(arr) || deepth <= 0) {
  5. return arr
  6. }
  7. return arr.reduce((prev, cur) => {
  8. if (typeof cur === "object") {
  9. return prev.concat(_flat(cur, deepth - 1))
  10. } else {
  11. return prev.concat(cur)
  12. }
  13. }, [])
  14. }
  15. console.log(_flat(arr, 4));