... 展開運算符(Spread Operator)是 JavaScript 中的一個特性,它允許你將一個陣列或物件拆分成獨立的元素或鍵值對。展開運算符可以應用在多種情況下,使得代碼更加簡潔且易於理解。
以下是 ... 展開運算符的一些常見用法:
展開陣列(Spread Array):
你可以使用展開運算符來將一個陣列中的元素展開成獨立的值,例如:
合併陣列:
展開運算符還可用於合併多個陣列,例如:
陣列複製:
使用展開運算符可以複製一個陣列,而不會影響原始陣列,例如:
創建函數參數列表:
在函數調用時,你可以使用展開運算符來將一個陣列中的元素傳遞給函數作為參數,例如:
物件展開(Spread Object):
除了陣列,展開運算符還可以用於物件,用來合併或複製物件的屬性,例如:
展開運算符是一個功能強大且方便的 JavaScript 特性,可以簡化許多操作,提高代碼的可讀性和可維護性。它在 ES6 中引入,成為了現代 JavaScript 開發中的常見實踐。
Flatten Deeply Nested Array
多維數組是包含整數或其他多維數組的遞歸數據結構。
A multi-dimensional array is a recursive data structure
that contains integers or other multi-dimensional arrays.
展平數組是該數組的一個版本,刪除了部分或全部子數組並替換為該子數組中的實際元素。
A flattened array is a version of that array with some or all of the sub-arrays
removed and replaced with the actual elements in that sub-array.
僅當前嵌套深度小於“n”時才應執行此展平操作。
This flattening operation should only be done
if the current depth of nesting is less than n.
第一個數組中元素的深度被視為“0”。
The depth of the elements in the first array are considered to be 0.
請在不使用內置 Array.flat 方法的情況下解決它。
Please solve it without the built-in Array.flat method.
先了解多維數組、遞迴、嵌套深度等定義
Array.flat 方法的情況下解決它。宣告函式flat,接受一個多維數組arr和變數n用以設定展平深度
使用for迴圈遍歷多維陣列arr,判斷要進行遞迴還是元素放進answer陣列
如果 n>0 且arr當前遍歷元素是陣列時進行遞迴
如果 n≤0 就把當前遍歷元素放進answer陣列
遞迴邏輯處理
遞迴解析1
遞迴解析2