首頁  >  文章  >  web前端  >  如何用一行程式碼展平嵌套物件?

如何用一行程式碼展平嵌套物件?

Patricia Arquette
Patricia Arquette原創
2024-10-22 13:05:17874瀏覽

How to Flatten Nested Objects with a Single Line of Code?

使用單行展平巢狀物件

要展平巢狀對象,您可以採用以下單行解:

Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))

這個單行程式碼可以展平具有巢狀屬性的對象,將它們轉換為具有一級屬性的平面對象。

工作原理:

  1. 遞歸函數 _flatten: 此函數遞歸遍歷對象,展平任何巢狀屬性。
  2. 擴充運算子(ES6): 在_flatten 函數內部,擴充運算子... 用於根據物件中的每個屬性建立單屬性物件陣列({[k] : o[k]})。
  3. 串聯: 物件.keys(o) 函數傳回一個屬性名稱數組,[].concat 函數用於將單屬性物件數組連接成一個陣列。
  4. Object.assign 函數 ( ES6): Object.assign 函數用於將單屬性物件的扁平數組合併為單一扁平物件。

範例:

使用範例物件:

{
  a: 2,
  b: {
    c: 3
  }
}

一行解將產生扁平物件:

{
  a: 2,
  c: 3
}
一行解將產生扁平物件:

以上是如何用一行程式碼展平嵌套物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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