首頁  >  文章  >  web前端  >  如何在 JavaScript 中簡潔地展平嵌套物件?

如何在 JavaScript 中簡潔地展平嵌套物件?

DDD
DDD原創
2024-10-22 13:36:02731瀏覽

How to Flatten Nested Objects Concisely in JavaScript?

簡潔地扁平化巢狀物件

在各種程式設計場景中經常需要將巢狀物件轉換為扁平化結構。為了快速且有效率的解決方案,您可以使用簡潔的單行程式碼。

將提供的巢狀物件:

{
  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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn