在进行前端开发的时候避免不了会遇到很多数组的情况,其中不乏会存在数组套数组或者需要合并数组的情况。今天小千就来给大家介绍一下如何将数组扁平化处理。

数组扁平化概念:用于将嵌套多层的数组“拉平”,变成一维的数组

方法一:通过concat将二维数组转化为一维数组

原理:通过将扩展运算符,将数组内部展开,并通过concat连接两个字符串的方式返回一个新的数组。

方法二:使用数组方法join和字符串方法split进行数组扁平化

原理:通过join方法将数组转化为以点隔开的字符串,在使用split把转化的字符串转化成字符串数组,通过。map方法将内部字符串转化数字类型的

方法三:通过正则方法和JSON.stringify方法和数组方法

原理:首先将数组转化为字符串 使用字符串匹配正则规则 替换所有的 ‘[’ ‘]’ 和方法二类似 split 主要是讲字符串转化为数组,map将字符串数组转化为数字

方法四:函数递归

原理:判断获取的当前值是不是数组,是数组就递归调用

方法五:通过reduce方法进行数组扁平化

原理:主要是通过reduce的依次执行,判断当前拿到的对象是不是数组, 是数组就进行一次函数递归将内部所有数组扁平化(与方法四类似)

方法六:ES6新增方法flat()


本文来自千锋教育,转载请注明出处。

web前端数组处理之扁平化数组相关推荐

  1. 实现JavaScript数组拍平/扁平化的方法

    实现JavaScript数组拍平/扁平化的方法 请写出一个数组拍平函数,效果如下: var arr=['a', ['b', 'c'], 2, ['d', 'e', 'f'], 'g', 3, 4]; ...

  2. js 数组去重、扁平化函数

    1.数组扁平化(又称数组降维) flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回 const test = ["a", ...

  3. 【通俗易懂】vue-elementul实现树形数据表格,后台返回的扁平化数组进行树形结构转换处理

    效果图 需求是做一个这种的多层级表格,树形数据表格. 大家可能遇到的问题 一种是不知道如何做这种多层级的表格 一种是后台给自己返回的数据不是树形的,也就是没有子父级.全是一条条的扁平化数组.类似这样 ...

  4. 好程序员web前端分享常见html5语义化标签

    为什么80%的码农都做不了架构师?>>>    好程序员web前端分享常见html5语义化标签,我们知道,创建结构清晰的页面可以建立良好的语义化基础,也降低了使用css的难度,下面总 ...

  5. 扁平化数组的几种方法

    一.扁平化的概念 扁平化管理是企业为解决层级结构的组织形式在现代环境下面临的难题而实施的一种管理模式.当企业规模扩大时,原来的有效办法是增加管理层次,而现在的有效办法是增加管理幅度.当管理层次减少而管 ...

  6. web前端培训之Javascript如何改变数组的长度?

    修改数组长度 使用"数组名.length"可以获取或修改数组的长度.数组长度的计算方式为数组中元素的最大索引值加1,示例代码如下. var arr = ['a', 'b', 'c' ...

  7. Web前端 Javascript笔记(1)数组

    结构 :html构建 样式:css控制 行为:JavaScript实现 什么是JavaScript? JavaScript是一种跨平台的脚本语言,平台,即运行环境,一般指操作系统. --------- ...

  8. es6删除数组某一项_精学手撕系列——数组扁平化

    参考文章:面试官连环追问:数组拍平(扁平化) flat 方法实现 编者荐语: 在前端面试中,手写flat是非常基础的面试题,通常出现在笔试或者第一轮面试中,主要考察面试者基本的手写代码能力和JavaS ...

  9. JAVA数组扁平化整合_一文搞定数组扁平化(超全面的数组拉平方案及实现)

    前言 面试手写代码在大厂面试中非常常见,秋招中面试小米就手写了一道flat实现的代码题,当时通过递归方式实现了数组扁平化逻辑,但没有考虑多种实现方案及其边界条件(主要是对所涉及到高阶函数的知识点不够熟 ...

最新文章

  1. python类中方法的执行顺序-python – 新式类中的方法解析顺序(MRO)?
  2. 给妹子修电脑,会有哪些故事?
  3. jooq中record_在Spring中使用jOOQ:CRUD
  4. cocos2d-x for android配置 运行 Sample on Linux OS
  5. Java Vector Capacity()方法与示例
  6. 【Python3网络爬虫开发实战】4-解析库的使用-3 使用pyquery
  7. Git 忽略一些文件的提交
  8. mysql根据语句自动实现索引_mysql 语句的索引和优化
  9. android 贝塞尔曲线 波浪线,Android 贝塞尔曲线实现水纹波动效果
  10. Linux中常用的网络命令
  11. 麒麟芯片或“绝版”,华为多系列手机涨价​;一加回应“刘作虎回归OPPO”;DBeaver 7.2 发布| 极客头条
  12. IP通信基础 3.21
  13. Airbnb 面试题汇总
  14. redis value多大会影响性能_Redis 最常见面试问题
  15. python+opencv+百度智能云 人脸识别——人脸相似度对比
  16. html 复制链接功能,h5分享功能[通过复制网页链接分享]
  17. 局域网内无法访问打印机的问题
  18. 外汇天眼:央行人民币降息意味着什么?有什么影响?
  19. 服务器主板北桥芯片组有哪些,主板上北桥芯片组都负责管理哪些硬件?
  20. 软件工程c语言2000行代码,C语言教务管理系统(2000行代码)

热门文章

  1. wpf 在另一个窗体上显示_另一个唐伯虎:大街上裸身奔跑、锒铛入狱多次自裁未遂...
  2. nginx php7 fastcgi,Windows下搭建PHP7+FastCGI+Nginx环境
  3. 非主流图片编辑软件_快火拼多多直播发言软件怎么下载
  4. SpringBoot注解自动扫描-底层实现
  5. Visual C++——修改框体背景颜色
  6. Spring Boot + IntelliJ IDEA——自动部署[Spring Boot热部署]+LiveReload[前端自动刷新、热加载]解决方案
  7. python挖长尾词 源码,如何用代码挖局长尾关键词
  8. 解决spring的xml文件cannot be open ( class path resource cannot be opened)
  9. 二叉树---根据【先序、中序序列】and【中序、后序序列】,画出二叉树!
  10. Android studio git 本地仓库和远程仓库节点对比