toString+split

function flatArr(arr) {
  return arr.toString().split(',')
}

递归

function flatArr(arr) {
  return Array.isArray(arr) ? arr.reduce((acc, cur) => [...acc, ...flatArr(cur)], []) : [arr]
}

递归+指定深度

function flatArr(arr, depth = 1) {
  return depth > 0
    ? arr.reduce((acc, cur) => {
        return Array.isArray(cur) ? [...acc, ...flatArr(cur, depth - 1)] : [...arr, cur]
      })
    : arr
}

相关文章: