数组扁平化的几种方法

  1. 利用reduce递归,直到每一项都不是数组
    function flatten (arr) {
    return arr.reduce((prev, curr) => {
     return prev.concat(Array.isArray(curr) ? flatten(curr) : curr);
    }, []);
    }
  2. ​将其转化为字符串(这样就达到了扁平化的目的)再转化为数组然后再将每一项转化为数字
    function flatten (arr) {
    return arr.toString().split(',').map((item) => Number(item))
    }
  3. 如果是数组就将其连接递归,直到每一项都不是数组
    function flatten (arr) {
    let res = []
    arr.forEach(item => {
      if (Array.isArray(item)) {
        res = res.concat(flatten(item))
      } else {
        res.push(item)
      }
    })
    return res
    }
  4. 利用拓展运算符,如果存在数组就继续连接
    function flatten (arr) {
    while (arr.some(item => Array.isArray(item))) {
     arr = [].concat(...arr)
    }
    return arr
    }
全部评论

相关推荐

迷茫的大四🐶:都收获五个了,兄弟那还说啥,不用改了,去玩吧
点赞 评论 收藏
分享
包行:平时怎么刷算法题的哇,字节的手撕听说都很难
字节跳动工作体验
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务