记一次JavaScript数组扁平化学习
云栖号资讯:【点击查看更多行业资讯】
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
在写项目的时候遇到了多级目录的树状结构,需要将这些嵌套的数组转换成只有一层的数组进行展示,因而有了这次数组扁平化常用方法的学习总结,在此记录。
什么是数组扁平化?
数组扁平化是指将多维数组转换为一维数组,即将内部嵌套着别的数组的数组提炼成没有嵌套的一维数组。举个栗子:
如何实现数组扁平化?
Array.prototype.flat()
这是ES6提供的方法,用于数组扁平化,这个方法返回一个新的数组,并不会改变原数组:
值得注意的是 flat() 默认扁平一层嵌套:
可以带一个整数参数表示扁平的层数:
如果对于无论多少层嵌套的数组都想转成一维数组,可以用Infinity关键字作为参数:
使用扩展运算符和concat()
可以使用扩展运算符可以展开数组,再用concat()可以合并数组,但只操作一次的结果只能展开一层:
要完全展开需要对嵌套的数组遍历再进行展开:
递归
定义目标空数组,然后我们对原有数组的每一项进行处理,若这一项为数组,则用concat()将这个子项数组合并到目标数组,若这一项不为数组,则直接push到目标数组里。
toString()
当元素是字符串或者是数字的时候,toString()可以把数组转为字符串,然后用split()就可以重新获得一个数组,但这个方法是有受限条件的,所以要酌情使用。下面举例一个全是数字的数组使用toString()扁平化:
写在最后
这就是本次记录学习数组扁平化的几个方法,数组扁平化的方法还有很多,可能还可以用for循环等方法实现,但Array.prototype.flat()是最方便的hhh。
【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-06-02
本文作者:Mia不是大米虫
本文来自:“掘金”,了解相关信息可以关注“掘金”
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
php通过session来实现登录验证
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 1、概述 做一个内部统计管理系统,所有内容需要登录后才能查看。这就需要系统内部每个模块都有登录验证的功能。找了一圈资料,决定用session来做。 2、系统概况 后端语言:php(用的是原生php,未引入框架) 前端样式:Bootstrap 主要功能:基本的管理员功能,普通用户需要通过管理员来统一管理。普通用户可以查看统计数据,管理员用户只能登入管理员中心管理用户。 3、session使用 a、登录成功后需要创建和记录session <?php require "../DB/MySQLHelper.php"; require "../BLL/UserBLL.php"; $result = -1; if(count($_POST)!=2) { echo $result; return; } $name = $_POST["name"]; $password = $_POST["password"]; $helper = new MySQLHelper(); $helper->I...
- 下一篇
jeecg-element-admin 1.0.6 发布
jeecg-element-admin是一个基于 element-ui 的 jeecg 管理系统。包含动态路由、权限配置、国际化、可拖拽抽屉、可拖拽弹窗、下拉树、jsx 分页表格等优秀的组件以及一些丰富的内容。 更新内容如下 1 增加了表单设计器 2 修复了有权限无法编辑的bug 登录注册 下拉树组件 可拖拽抽屉 可随意拖动弹窗,放大,缩小,头拖拽 国际化 代码编辑器 github查看地址 https://github.com/869123771/element-pro gitee查看地址https://gitee.com/wangyanghub/element-pro
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS关闭SELinux安全模块
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7设置SWAP分区,小内存服务器的救世主