数组扁平化

1. 调用 ES6 中的 flat 方法 
arr.flat(Infinity)

 
2.  递归 
     function flatten(arr) {
      let res = []
      for (let i of arr) {
        Array.isArray(i) ? res = res.concat(flatten(i)) : res.push(i)
      }
      return res
    }
    console.log(flatten(arr)) 
3.  reduce 
    function flatten(arr) {
      return arr.reduce((pre, cur) => pre.concat(Array.isArray(cur) ? flatten(cur) : cur), [])
    }
    console.log(flatten(arr))
4. 扩展运算符
function flatten(arr) {
      while (arr.some(item => Array.isArray(item))) {
        console.log(arr, 'kkk')
        arr = [].concat(...arr)
        console.log(arr, 'lll')
      }
      return arr
    }
    console.log(flatten(arr))
posted @ 2020-08-02 19:59  詹姆斯小皇帝  阅读(94)  评论(0编辑  收藏  举报