/**
* @author xuxuxuxu
* @description 简单重写flat函数
* @param {Number} deep 可选默认1 扁平化的深度
* @return {Array} 返回扁平化后的数组
*/
Object.prototype.flat = function(deep) {
if (deep <= 0 || !this.find(item => Array.isArray(item))) return this;
else if (!deep || deep == 1) {
return this.reduce((pre, cur) => {
return pre.concat(cur);
}, []);
} else if (deep > 1) {
return this.reduce((pre, cur) => {
if(Array.isArray(cur)) return pre.concat(cur.reduceflat(deep - 1));
else return pre.concat(cur);
}, [])
}
}
let arr = [1, 2, [3, 4], [2, 1, [2, 3]]];
console.log(arr.flat());
console.log(arr.flat(0));
console.log(arr.flat(Infinity));
console