两个小思路:

let arr = [1,2,3,[1,2,3],[2,[3,4],3]]

function flatteningToArr1(arr) {
  let str = JSON.stringify(arr)
  let matchReg = /[\[\]]/g
  function replaceHandle(p, offset) {
    if (offset != 0 && offset != str.length - 1)
      return ''
    else
      return p
  }
  return JSON.parse(str.replace(matchReg, replaceHandle))
}

function flatteningToArr2(data) {
  let ans = []
  return function f1(arr) {
    arr.forEach(ele => {
      if (ele instanceof Array) {
        f1(ele)
      } else {
        ans.push(ele)
      }
    })
    return ans
  }(data)
}

console.log(flatteningToArr1(arr))
console.log(flatteningToArr2(arr))