方法一
ES6 语法
Array.prototype.flat(depth)
, depth指扁平化层级
1 | let arr = [1, 2, [3, 4, [5, 6, [7]]], 8] |
Infinity
指代无限层级,无论数组的层级为多深都可转为一维数组
方法二
Array.prototype.toString()
没错,就是我们常见的转为字符串,没想到吧:smile:
1 | let arr = [1, 2, [3, 4, [5, 6, [7]]], 8] |
其实arr.join(',')
也能达到和arr.toString()
一模一样的效果,此处省略了
方法三
和
toString()
很像的JSON.stringify()
, 但有些不同
1 | let arr = [1, 2, [3, 4, [5, 6, [7]]], 8] |
还是toString()
吧:joy:
方法四
ES6 延展操作符…
1 |
|
也就是说一次 arr.flat()
等于一次 [].concat(...arr)
但仔细一想, 我可没 Infinity
,我咋知道来多少次 concat
呢?:fearful:
1 | // 循环呗, 还能咋整 |
这个有点小绕,没上面几个来的舒服了:cry:
方法五
其实在
方法四
中讲到了循环, 通过循环的话, 我估计大家可以花式的将一个多维数据扁平化, 那样方法可就太多了,所以通过循环遍历的方法,就不一一去讲了,这里举个递归的例子
1 | let arr = [1, 2, [3, 4, [5, 6, [7]]], 8] |
这个我也不舒服:cry:
总结
以上就是我所知的数组扁平化的5?种方法, 本人很菜, 若有错误,谢谢指出:smile:, 评论