持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情
家人们呐,可别再用什么递归、循环的方法来实现数组的扁平化啦,ES6的flat直接冲!!!
先来看看flat的定义:
flat(depth) 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
depth为非必传;depth不传时,默认展开一层数组;传入depth时,展开depth层数组;
如果不知道数组是几层的,但又想将数组每一项元素全部展开,变成一级数组,则传入Infinity;
进行flat数组扁平化,并不会影响原数组;
可以看到,不传参数depth时,默认展开一层数组
flatArr中,子元素flatArr[2]是二级数组结构,所以传入depth===2,就可以将arr完全扁平化成一级数组
在开发过程中,我们的数据都是来自后端接口,也不知道会返回多少级,所以如果要扁平化成一级数组,直接传入depth===Infinity
注意:这里有一个细节,flat会过滤掉数组中的空项!!!
只会过滤掉空项,不会过滤掉空字符串
已经帮大家试过了,兼容性嘎嘎好👌,IE的话建议用户换浏览器吧...
PS: 更多详情请看MDN官方文档developer.mozilla.org/zh-CN/docs/…