数组扁平化的几种方法

  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
    }
全部评论

相关推荐

07-21 18:43
门头沟学院 Java
是暑期都招满了吗
ANEOY:今年感觉真是后端地狱级难度了,从暑期就是这样,前端需求非常大
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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