数组扁平化

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

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

 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));


相关文章
|
3月前
|
算法 前端开发
经典面试题:扁平化嵌套数组
经典面试题:扁平化嵌套数组
32 0
Lodash学习之数组取交集
Lodash学习之数组取交集
2321 0
Lodash学习之数组取交集
|
JavaScript
多个js对象数组合并成一个对象数组的解决方案
多个js对象数组合并成一个对象数组的解决方案
282 0
|
3月前
|
JavaScript 前端开发
面试官:【js多维数组扁平化去重并排序】
面试官:【js多维数组扁平化去重并排序】
48 0
|
10月前
|
存储 算法 前端开发
前端算法-两个数组的交集
前端算法-两个数组的交集
|
索引
labview数组数据一维数组二维数组索引行列元素替换子数组排序
labview数组数据一维数组二维数组索引行列元素替换子数组排序
175 0
leetcode_341. 扁平化嵌套列表迭代器
题目链接: 341. 扁平化嵌套列表迭代器 前排提示,这是一道跟树有关的题目,而且是 N 叉树,关于 N 叉树的入门题目可以参考我之前的一篇文章,leetcode 之浅谈 N 叉树 题目 给你一个嵌套
leetcode_341. 扁平化嵌套列表迭代器
|
Java 索引
Java数组(3)--二维(多维)数组
Java数组(3)--二维(多维)数组
112 0
Java数组(3)--二维(多维)数组
|
JSON 数据格式
六种方式实现数组扁平化,总有一个适合你
扁平化在日常的工作中我们也会经常用到,也是面试时经常考的一道题,今天总结一下常见和不常见的数组扁平化的几种方式 数组的扁平化其实就是将一个嵌套多层的数组 array(嵌套可以是任何层数)转换为只有一层的数组。其实就是把多维的数组“拍平”,输出最后的一维数组。
169 0
Lodash学习之集合扁平化
Lodash学习之集合扁平化
712 0
Lodash学习之集合扁平化