数组扁平化

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

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

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


相关文章
|
7月前
|
算法 前端开发
经典面试题:扁平化嵌套数组
经典面试题:扁平化嵌套数组
45 0
|
7月前
|
JavaScript 前端开发
面试官:【js多维数组扁平化去重并排序】
面试官:【js多维数组扁平化去重并排序】
62 0
C#基础Ⅵ❷-数组
C#基础Ⅵ❷-数组
leetcode_341. 扁平化嵌套列表迭代器
题目链接: 341. 扁平化嵌套列表迭代器 前排提示,这是一道跟树有关的题目,而且是 N 叉树,关于 N 叉树的入门题目可以参考我之前的一篇文章,leetcode 之浅谈 N 叉树 题目 给你一个嵌套
leetcode_341. 扁平化嵌套列表迭代器
数组的一些基础题
数组的一些基础题
109 0
数组的一些基础题
Lodash学习之集合扁平化
Lodash学习之集合扁平化
781 0
Lodash学习之集合扁平化
Lodash学习之集合递归扁平化
Lodash学习之集合递归扁平化
329 0
Lodash学习之集合递归扁平化
Lodash学习之集合指定递归深度扁平化
Lodash学习之集合指定递归深度扁平化
735 0
Lodash学习之集合指定递归深度扁平化
|
JSON 数据格式
六种方式实现数组扁平化,总有一个适合你
扁平化在日常的工作中我们也会经常用到,也是面试时经常考的一道题,今天总结一下常见和不常见的数组扁平化的几种方式 数组的扁平化其实就是将一个嵌套多层的数组 array(嵌套可以是任何层数)转换为只有一层的数组。其实就是把多维的数组“拍平”,输出最后的一维数组。
197 0