问
如何进行扁平化数字
答
有如下几种方案
一、使用flat
flat()
方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
1 | var arr1 = [1, 2, [3, 4]] |
二、使用 reduce 和 concat
1 | var arr = [1, 2, [3, 4]]; |
三、reduce + concat + isArray + recursivity
1 | // 使用 reduce、concat 和递归展开无限多层嵌套的数组 |
四、forEach + isArray + push + recursivity
1 | // forEach 遍历数组会自动跳过空元素 |
五、使用堆栈 stack
无递归
1 | // 无递归/数组扁平化,使用堆栈 |
有递归
1 | // 递归版本的反嵌套 |
六、使用 generator 函数
1 | function * flatten(array) { |