数组扁平化

简介: 没有指定层数的数组扁平化

没有指定层数的数组扁平化

 let arr = [1, [2, [1, 2, 3, [4, 5, 6]]], 18, [25, 12, [13, 14, 27]]]
        function flatten(arr) {
            let res = []
            for (let i = 0; i < arr.length; i++) {
                if (Array.isArray(arr[i])) {
                    res = res.concat(flatten(arr[i]))
                } else {
                    res.push(arr[i])
                }
            }
            return res
        }
        console.log(flatten(arr));

带有层数的数组扁平化

let arr = [1, [2, [1, 2, 3, [4, 5, 6]]], 18, [25, 12, [13, 14, 27]]]
        function flatten(arr, k) {
            if (k == 0) {
                return arr
            }
            let res = []
            for (let i = 0; i < arr.length; i++) {
                if (Array.isArray(arr[i])) {
                    res = res.concat(flatten(arr[i], k - 1))
                } else {
                    res.push(arr[i])
                }
            }
            return res
        }
        console.log(flatten(arr, 2));


相关文章
|
8月前
|
算法 前端开发
经典面试题:扁平化嵌套数组
经典面试题:扁平化嵌套数组
54 0
|
4月前
|
JavaScript 前端开发
JavaScript从二维数组抽取若干元素组成新二维数组
JavaScript从二维数组抽取若干元素组成新二维数组
|
7月前
|
存储 算法
数据结构学习记录——集合及运算(集合的表示、并查集、树结构表示集合、集合运算、查找函数、并运算)
数据结构学习记录——集合及运算(集合的表示、并查集、树结构表示集合、集合运算、查找函数、并运算)
47 0
|
8月前
指针的基础应用(数组的颠倒和排序,二维数组的表示)
指针的基础应用(数组的颠倒和排序,二维数组的表示)
40 0
数组转树形结构的两种实现
数组转树形结构的两种实现
63 0
|
8月前
|
存储 程序员 C语言
【C/C++ 数据结构 】二维数组结构解析
【C/C++ 数据结构 】二维数组结构解析
132 0
leetcode_341. 扁平化嵌套列表迭代器
题目链接: 341. 扁平化嵌套列表迭代器 前排提示,这是一道跟树有关的题目,而且是 N 叉树,关于 N 叉树的入门题目可以参考我之前的一篇文章,leetcode 之浅谈 N 叉树 题目 给你一个嵌套
leetcode_341. 扁平化嵌套列表迭代器
|
索引
labview数组数据一维数组二维数组索引行列元素替换子数组排序
labview数组数据一维数组二维数组索引行列元素替换子数组排序
299 0
Lodash学习之集合扁平化
Lodash学习之集合扁平化
808 0
Lodash学习之集合扁平化