簡潔地扁平化巢狀物件
在各種程式設計場景中經常需要將巢狀物件轉換為扁平化結構。為了快速且有效率的解決方案,您可以使用簡潔的單行程式碼。
將提供的巢狀物件:
{ a:2, b: { c:3 } }
展平為所需的輸出:
{ a:2, c:3 }
採用下列JavaScript 表達式:
Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))
這種方法背後的核心概念是遞歸創建一個單屬性物件的陣列。 Object.keys(o) 方法會擷取輸入物件 o 的所有鍵。然後檢查每個鍵 k 的物件類型。如果 typeof o[k] === 'object',則函數 _flatten 會遞歸地套用於巢狀物件。否則,它使用鍵 k 和值 o[k] 建構一個單屬性物件。
[].concat(... 語法將所有這些單屬性物件組合到一個陣列中。最後, Object.assign({}, ...) 將這些數組合併到所需的扁平輸出中。高效率的解決方案。
以上是如何在 JavaScript 中簡潔地展平嵌套物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!