如何在 JavaScript 中使用路徑作為鍵來展開扁平化的物件?


在 JavaScript 中,可以透過建立物件的淺複製來“扁平化”物件。這對於建立物件的快照很有用,但如果稍後修改物件可能會導致問題。如果需要展開扁平化的物件,可以使用路徑作為鍵來恢復其原始結構。

使用路徑作為鍵

當物件被扁平化時,鍵會被連線成單個字串。可以透過建立具有相同鍵和值的來物件來使用此字串展開物件。

例如,考慮以下物件。

var obj = { "foo.bar": "baz", "foo.qux": "quux" };

可以透過建立具有相同鍵和值的來物件來展開此物件。

<!doctype html> <html> <head> <title>Examples</title> </head> <body> <div id="result1">Original Object:</div><br/> <div id="result2">After Unflatten:</div> <script> var obj = { "foo.bar": "baz", "foo.qux": "quux" }; var unflattenedObj = {}; for (var key in obj) { var value = obj[key]; var path = key.split("."); var current = unflattenedObj; for (var i = 0; i < path.length - 1; i++) { var part = path[i]; current[part] = current[part] || {}; current = current[part]; } current[path[path.length - 1]] = value; } document.getElementById("result1").innerHTML += JSON.stringify(obj); document.getElementById("result2").innerHTML += JSON.stringify(unflattenedObj); console.log(unflattenedObj) </script> </body> </html>

展開的益處

展開物件有很多好處。首先,它可以幫助你避免重複鍵。如果兩個鍵具有相同的名稱,則在物件被扁平化時會被覆蓋。其次,它可以幫助你保留物件的原始結構。當你需要將物件傳遞給期望特定格式的函式時,這可能很重要。

結論

展開物件只需建立具有相同鍵和值的來物件即可。這對於避免重複鍵和保留原始物件結構很有用。

更新於: 2022年9月14日

349 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告