3、es6 flat函数
思路:
es6的 flat
函数实现数组的扁平化,语法:Array.flat(dep),
dep
为展开数组的维数(整数),如 dep 是 1, 就是展开1层,如想多维数组都展开成一维数组则 直接 dep 等于 Infinity
。
实现:
let arr = [1,2,[3,4,5]] function es6Arr (arr) { return arr.flat(Infinity) } console.log('结果是:', es6Arr(arr)) // 结果是:[1,2,3,4,5]
4、递归实现
思路:
递归的思路就是,通过遍历,判断元素是否是数组
,如果是数组则继续执行此函数,直至将
实现:
let arr = [1, [2, [3, 4, 5]]]; function floatDg (arr) { let result = [] for(let i = 0; i < arr.length; i++) { if (Array.isArray(arr[i])) { result = result.concat(floatDg(arr[i])) } else { result.push(arr[i]) } } return result } console.log(floatDg(arr), '递归') // 结果:[1,2,3,4,5]
当然除了以上4中还有很多种方法如:
- es6扩展运算符符 ...
- 正则
大家可以去思考,去实现,本篇不再多做赘述~,如有问题,请大家多多交流指正~