ES6新增方法之flat的使用和简单实现
Array.prototype.flat()
flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
长话短说,就是按照flat里面的参数对Array做一个去括号的操作,默认去一层。
下面就简单实现下
Array.prototype.myFlat = function (num = 1) {
if (num < 1) {
return this
}
const res = []
for (let i = 0;
i < this.length;
i++) {
if (Array.isArray(this[i])) {
res.push(...this[i].myFlat(num - 1))
} else {
res.push(this[i])
}
}
return res
}
【ES6新增方法之flat的使用和简单实现】思路比较简单,如果是非数组,直接push,如果是数字,需要把它去一层括号进行处理。去N次括号的话,调用N次myFlat方法即可。
测试一下
console.log([1, [2], 3, [[4]], [[[5]]]].myFlat(2))
在浏览器里可以看到一个新数组
0: 1
1: 2
2: 3
3: 4
4: [5]
当然,复杂的话需要做一些预处理啥的
推荐阅读
- 对抗抑郁最好的方法
- (二)ES6第一节变量(let|(二)ES6第一节变量(let,const)
- 六步搭建ES6语法环境
- 怎样用黑谜速冻膜去黑头,|怎样用黑谜速冻膜去黑头, 最有效的去黑头的方法看这!
- 移动端h5调试方法
- 唱歌教学(导致嗓音损坏的几个常见的错误唱歌方法!)
- 拆书方法训练营
- 数组常用方法一
- 这份史上最经典的3大学习方法,清华北大学霸都在用!
- 迅捷流程图制作软件的使用方法!