使用單行壓平巢狀物件
壓平巢狀物件是程式設計中的常見任務,使用現代JavaScript 會更加簡單。這是一個使用展開運算子和Object.assign 的單行解決方案:
Object.assign({}, ...function _flatten(o) { return [].concat(...Object.keys(o).map(k => typeof o[k] === 'object' ? _flatten(o[k]) : ({[k]: o[k]})))}(yourObject))
工作原理:
此程式碼使用遞歸函數_flatten,它遍歷嵌套物件並建立一組單屬性物件。每個屬性名稱都會對應到其對應的值,如果該值是另一個對象,則該函數會遞歸到該對象。
展開運算子 (...) 用於展平 _flatten 所建立的物件陣列。然後將產生的陣列傳遞給 Object.assign,它將所有物件組合成一個扁平物件。
輸入和輸出範例:
考慮以下巢狀物件:
{ a: 2, b: { c: 3 } }
在此物件上執行提供的程式碼將產生扁平化結果:
{ a: 2, c: 3 }
注意:
此解決方案使用ES6 功能,因此如果您使用較舊的JavaScript 環境,可能需要調整它。
以上是如何用一行 JS 程式碼展平嵌套物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!