方法一
利用toString方法
Array.prototype.myflat = function(){
// return this.toString().split(",") //针对字符串
return this.toString().split(",").map(item=>parseInt(item)) //针对数字
}
var a = [2,3,4,[5,6,[7,8],9],10]
a.myflat() // [2, 3, 4, 5, 6, 7, 8, 9, 10]
方法二
利用reduce方法 ,可以实现自定义扁平层数
Array.prototype.myflat = function(count = 1){
var newAry = this
while(count>0){
newAry= newAry .reduce((prev,cur)=>{
return Array.isArray(cur)?prev.concat(cur):[...prev,cur]
},[])
count--
}
return newAry
}
var a = [2,3,4,[5,6,[7,8],9],10]
a.myflat() // [2, 3, 4, 5, 6, Array(2), 9, 10]
a.myflat(2) // [2, 3, 4, 5, 6, 7, 8, 9, 10]