Array的flat()實現方式


<script>
    let arr1 = [1,2,[3,4]]
    console.log(arr1.flat()) // [1,2,3,4]
   
    //實現方式1 //遞歸
    Array.prototype.flat = function(){
      var arr = [];
      this.forEach((item,idx)=>{
        if(Array.isArray(item)){
          arr=arr.concat(item.flat());

        }else{
          arr.push(item)
        }

      })
      return arr
    }

    //實現方式2
  
//連接數組返回字符串用,進行分割,然后map映射將數組的string轉換為number
arr.prototype.flat = function(){ this.toString().split(',').map(item=>+item) } 
//map 映射 例:
//var arr = [1,2,3] //var arr2=arr.map((item)=>{return item*2}) //console.log(arr2) [2,4,6] </script>

  本文參考自掘金 Vincent Ko https://juejin.im/post/5b72f0caf265da282809f3b5(前端鄙視&面試 算法)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM