首頁  >  文章  >  web前端  >  如何使用 JavaScript 中的鍵路徑展開物件?

如何使用 JavaScript 中的鍵路徑展開物件?

王林
王林轉載
2023-08-29 15:09:031265瀏覽

如何使用 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>

取消展平的好處

出於多種原因,取消展平物件可能很有用。首先,它可以幫助您避免重複的密鑰。如果有兩個同名的鍵,當物件被展平時它們將被覆蓋。其次,它可以幫助您保留物件的原始結構。當您需要將物件傳遞給需要某種格式的函數時,這可能很重要。

結論

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

以上是如何使用 JavaScript 中的鍵路徑展開物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除