数组扁平化

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

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

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


相关文章
|
6月前
|
算法 前端开发
经典面试题:扁平化嵌套数组
经典面试题:扁平化嵌套数组
43 0
终于掌握append为切片添加元素的诀窍 切片动态增长看这里
终于掌握append为切片添加元素的诀窍 切片动态增长看这里
88 1
C#基础Ⅵ❷-数组
C#基础Ⅵ❷-数组
leetcode_341. 扁平化嵌套列表迭代器
题目链接: 341. 扁平化嵌套列表迭代器 前排提示,这是一道跟树有关的题目,而且是 N 叉树,关于 N 叉树的入门题目可以参考我之前的一篇文章,leetcode 之浅谈 N 叉树 题目 给你一个嵌套
leetcode_341. 扁平化嵌套列表迭代器
|
存储 算法 索引
最基础的数组你真的掌握了吗?
首先要知道数组在内存中的存储方式,这样才能真正理解数组相关的题 数组是存放在连续内存空间上的相同类型数据的集合。 数组可以方便的通过下标索引的方式获取到下标下对应的数据。 举一个字符数组的例子,如图所示:
86 0
|
Java 索引
Java数组(3)--二维(多维)数组
Java数组(3)--二维(多维)数组
120 0
Java数组(3)--二维(多维)数组
数组的一些基础题
数组的一些基础题
107 0
数组的一些基础题
Lodash学习之集合扁平化
Lodash学习之集合扁平化
769 0
Lodash学习之集合扁平化
Lodash学习之集合指定递归深度扁平化
Lodash学习之集合指定递归深度扁平化
725 0
Lodash学习之集合指定递归深度扁平化