# 数组扁平化

将多维数组扁平化,原生的 flat 最方便:

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

其它方案:

function flat(arr) {
  return arr
    .toString()
    .split(',')
    .map(Number)
}
function flat(arr) {
  return JSON.stringify(arr)
    .replace(/[\[\]]/g, '')
    .split(',')
    .map(Number)
}
function flat(arr) {
  while (arr.some(Array.isArray)) {
    arr = [].concat(...arr)
  }
  return arr
}
function flat(arr) {
  let result = [],
    item
  ;(function _flat(arr) {
    for (var i = 0; i < arr.length; i++) {
      item = arr[i]
      if (Array.isArray(item)) {
        _flat(item)
      } else {
        result.push(item)
      }
    }
  })(arr)

  return result
}
function flat(arr) {
  return arr.reduce((prev, cur) => {
    if (Array.isArray(cur)) {
      prev.push(...flat(cur))
    } else {
      prev.push(cur)
    }

    return prev
  }, [])
}