Javascript算法 — 数组扁平化
本文介绍js中数组扁平化的几种常用方式
目录
话不多说,直接上方案:
一、flat(ES6)
利用ES6的flat方法:
flat()
方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
1 | const arr1 = [0, 1, 2, [3, 4]] |
二、reduce + concat
1 | var arr = [1, 2, [3, 4]]; |
三、reduce + spread
使用扩展运算符:
1 | var arr = [1, 2, [3, 4]]; |
四、reduce + concat + isArray + recursivity
利用递归多层扁平化:
1 | // 使用 reduce、concat 和递归展开无限多层嵌套的数组 |
五、forEach+isArray+push+recursivity
1 | // forEach 遍历数组会自动跳过空元素 |
六、Generator function
使用迭代器,对于Generator
还不熟悉的朋友可以参考我另外一篇文章锋利的ES6 — Generator。
1 | function* flatten(array) { |
注意,这里调用方法并不能直接得到结果,而是在迭代器里,使用next()
可以一个个取出来,但是太麻烦,所以可以用扩展运算符展开之后放入一个新的额数组从而得到最终结果。
代码不是万能的,但不写代码是万万不能的
Dary记
-
更多干货,尽在公众号
转载请注明来源,文末有原始链接。欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 dary1112@foxmail.com
创作不易,您的打赏是我更新的动力
-
支付宝
-
微信
文章标题:Javascript算法 — 数组扁平化
文章字数:613
本文作者:Dary
发布时间:2020-10-21, 17:12:00
最后更新:2020-10-21, 17:16:34
原始链接:http://www.xiongdalin.com/2020/10/21/array-flat/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。
Built By Dary