数组扁平化:将一个多维数组,展开成一个一维数
let arr = [1,[2,3],[4,[5,6,[7]]],8];[1,2,3,4,5,6,7,8]

数组中嵌套数组自然会想到利用递归来做,只要里面还是数组就一直向里面探索,这里就涉及到如何判断一个是不是数组,或者判断数组有几种方式

方式1 递归

function myFlat(arr) {const res = [];for (let i = 0; i < arr.length; i++) {if (Array.isArray(arr[i])) {res.push(...myFlat(arr[i]));} else {res.push(arr[i]);}}return res;}

数组方法经常用,才能够活学活用……

function flat(arr) {while (arr.some(item => Array.isArray(item))) {arr = [].concat(...arr);};return arr;};

方式2 利用api

const res1 = arr.flat(Infinity);

flat()里面传入一个数字,表示分开的层数,Infinity表示展开无限层
let arr = [1,[2,3],[4,[5,6,[7]]],8];
arr.flat(1) = (6) [1, 2, 3, 4, Array(3), 8]

方式3 正则

const res2 = JSON.stringify(arr).replace(/\[|\]/g, '').split(',');

这个得到的是字符串
(8) ["1", "2", "3", "4", "5", "6", "7", "8"]

优化后:

const res3 = JSON.parse('[' + JSON.stringify(arr).replace(/\[|\]/g, '') + ']');

考过

你能想到几种方式实现数组扁平化(越多越好)相关推荐

  1. JAVA数组扁平化整合_5种方法实现数组扁平化

    数组扁平化概念 数组扁平化是指将一个多维数组变为一维数组 [1, [2, 3, [4, 5]]] ------> [1, 2, 3, 4, 5] 复制代码 实现 1. reduce 遍历数组每一 ...

  2. 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。

    [判断题]一行可以写多条预处理命令 [判断题]如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名一致. [判断题]Protected类型的实例变量只能在本类中使用,其他类中不可 ...

  3. 实现数组扁平化的 6 种方式

    实现数组扁平化的 6 种方式 老规矩,开局先上问题,带着问题去思考: 怎样用最普通的方法解决数组扁平化问题? ES6里面是否有一些高级的方法能够直接实现? 扁平化的实现   数组的扁平化其实就是将一个 ...

  4. 实现数组扁平化的6种方式

    扁平化的实现 数组的扁平化其实就是将一个嵌套多层的数组 array(嵌套可以是任何层数)转换为只有一层的数组. 普通的递归实现 普通的递归思路很容易理解,就是通过循环递归的方式,一项一项地去遍历,如果 ...

  5. JAVA数组扁平化整合_数组扁平化的几种处理放法

    清明节,这几天放假闲来无事,好好研究一下基础知识,今天看看数组扁平化该怎么处理: 先来看数组扁平化是什么: var arr = [1,2,3,4,[5,6,[7,8]],true] => [1, ...

  6. 实现数组扁平化的6种方法

    实现数组扁平化的6种方法 扁平化的实现 方法一:普通的递归实现 方法二:利用 reduce 函数迭代 方法三:扩展运算符实现 方法四:split 和 toString 共同处理 方法五:调用 ES6 ...

  7. 对连续值/离散值进行预处理的两种方式(标准化/one-hot化)、反标准化/逆标准化、字符串预处理

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) tensorflow 2.0 画出model网络模型的拓扑图 ...

  8. JS数组扁平化flat,reduce等六种方式实现

    数组扁平化:将数组中嵌套的数组拉平变成一维数组. 方法1:reduce,遍历数组每一项,若值为数组则递归遍历,否则concat 代码如下 let arr = [1, [2, 3, [4, 5], 6] ...

  9. 【算法图解|2】JavaScript 如何实现数组扁平化

    数组的扁平化,就是将一个嵌套多层的数组 array (嵌套可以是任何层数)转换为只有一层的数组. 举个例子,假设有个名为 flatten 的函数可以做到数组扁平化, var arr = [1, [2, ...

最新文章

  1. 安装了低版本Jdk后eclipse无法打开的终极解决方法
  2. java模拟银行存取_JAVA基础案例 模拟银行存取款业务
  3. python【数据结构与算法】计数问题(分治)
  4. 网站社区类产品管理经验
  5. ASP.NET 2.0(C#) - Themes(主题)
  6. 4倍速!ML.NET Model Builder GPU 与 CPU 对比测试
  7. 使用ABAP delete duplicate时遇到的问题
  8. Ubuntu学习日记--Lesson3:vim编辑器使用和常用命令
  9. Rhino(犀牛)的视口
  10. 电脑怎么让图片颜色反转?怎么调图片反色效果?
  11. 【STM32F429的DSP教程】第18章 DSP控制函数-更好用的SIN,COS计算
  12. win10下office2013命令激活参考
  13. MT6797处理器怎么样?Helio X20处理器资料介绍
  14. 嵌入式操作系统风云录:历史演进与物联网未来第2章 Chapter2
  15. 计算机专业的短期计划范文,制定计算机学习计划范文3篇
  16. Shiro学习(2)身份验证
  17. 外包公司面试门槛高吗?软件测试员进外包公司容易吗?
  18. 计算机信息技术培训互评 评语,互评评语大全
  19. python合并json_组合两个json字典python
  20. DELL笔记本webcom摄像头问题解决方法

热门文章

  1. python爬虫抓取分页_Scrapy爬虫框架之Scrapy爬取分页数据(一)
  2. Java char jdk_java学习系列之二---字符串(char.String.StringBuilder以及StringBuffer)
  3. 零基础学python图文版-Day2 怎么学 Python?
  4. python下载特别慢-Python3 用 urllib 下载图片非常慢,会是什么原因呢?
  5. 学完python能做什么-学完Python开发可以从事哪些行业?
  6. python的第三方库是干什么用的-python标准库和第三方库的区别
  7. 国外大神一张图学会python-学习Python不得不关注和学习的国外大神博客
  8. 三星智能电视将用户语音隐私泄露给第三方?
  9. c语言答案选择题,C语言选择题(附答案)
  10. 微信计步器怎么不计步_送我一顶圣诞帽@星尘StarDust,制作一个圣诞创意微信头像...