js数组方法

flat

[1,2,3,[4,6,]].flat(n) // n代表维度,结果为[1, 2, 3, 4, 6]

toString

arr.toString() // '1,2,3,4,5'

lodash方式

_.flatMapDeep(arr)

递归扁平化

    var arr = [1, 2, 3, [2, 3, 4, 5, [6, 7, 8]]]
    var newarr = []

    function flatarr(arr) {
      arr.forEach(item => {
        if (Array.isArray(item)) {
          flatarr(item)
        } else {
          newarr.push(item)
        }
      })
      return newarr
    }
    console.log(flatarr(arr))
    // 巧妙的方法
    var arr = [1, 2, 3, [2, 3, 4, 5, [6, 7, 8]]]
    function flatarr(arr) {
      while (arr.some(item => Array.isArray(item))) {
        arr = [].concat(...arr)
      }
      return arr
    }
    console.log(flatarr(arr))

你可能感兴趣的:(js数组方法)