Array Flatten - extend Array.prototype.myFlat
Implementation of array flattening by extending Array prototype
Array Flatten Implementation
難度:Easy
實作一個 Array.prototype.myFlat 方法,將多維陣列轉換成一維陣列
example:
example:
Array
Recursion
解題重點
- 使用
forEach
遍歷陣列 - 使用
concat
合併陣列 - 使用遞迴處理巢狀陣列
基本實作
使用 forEach 和 concat 的解法:
程式碼解析
- 初始化結果陣列
- 遍歷處理每個元素
使用範例
實作重點
- 遞迴處理
- 使用
Array.isArray()
判斷 - 遞迴呼叫
myFlat()
- 使用
- 陣列合併
- 使用
concat
合併結果 - 使用
push
加入元素
- 使用
- 注意事項
- 處理空陣列情況
- 確保遞迴終止條件
其他解法
字串轉換法(僅適用於數字陣列)
這是一個非常簡潔的解法,但是有對應的限制,使用場景要先確認好
這個解法的限制:
- 只能處理數字陣列
- 不能處理其他型別(字串、物件等)
- 可能有精度問題(處理浮點數時)
解法比較表
解法 | 優點 | 缺點 | 適用場景 |
---|---|---|---|
遞迴 + forEach | 通用性強、可讀性好 | 程式碼較長 | 一般使用 |
字串轉換 | 程式碼最簡潔 | 只能處理數字 | 純數字陣列 |
原生 flat() | 效能最佳、簡單 | 瀏覽器支援度 | 實務開發 |