数组扁平化

方法一

利用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]

你可能感兴趣的:(数组扁平化)