簡體   English   中英

我應該在javascript中定義多少個嵌套對象?

[英]how many nested object should i define in javascript?

我是javascript新手。

  • 在這里,我想知道我可以javascript 定義多少個嵌套或內部對象
  • 如何在js中找到前兩個嵌套對象的鍵。

    我也在Google上搜索它,但沒有任何解決方案。

這是我想要的例子!

     var obj = {
      a:{
       b:{
         c:{
             //so on
           }
         }
      }
    }

提前致謝。

在這里,我想知道我可以在javascript中定義多少個嵌套或內部對象

沒有指定的限制。

對於像您所示的對象初始化程序,最終您會遇到運行該代碼的特定JavaScript引擎的某種限制,例如,圍繞其對初始化程序的解析/處理,但在規范。

如果您自己動態地構建對象,例如:

// Don't run this code!
var obj = {};
while (true) {
    obj.child = {};
    obj = obj.child;
}

...沒有理由相信您會遇到除與所創建的對象數量(而不是它們的嵌套)相關的內存限制以外的任何事情。

如何查找在js中定義了多少個對象鍵

在一個特定的對象中,您可以通過Object.getOwnPropertyNamesObject.getOwnPropertySymbols獲得其自身 (未繼承)屬性的數組,然后獲取數組的length 為了找出對象具有多少屬性以及其屬性所引用的對象有多少,您可以使用遞歸搜索-但要注意循環結構。

例如:

 const obj = { a: { b: { c: { } } } }; function countProps(target, recursive = false) { const ownProperties = [ ...Object.getOwnPropertyNames(target), ...Object.getOwnPropertySymbols(target) ]; let count = ownProperties.length; if (recursive) { for (const key of ownProperties) { const value = target[key]; if (value && typeof value === "object") { count += countProps(value, true); } } } return count; } console.log(countProps(obj, true)); 

  1. 回答第一個問題。

嵌套對象沒有任何限制。 您可以根據需要定義嵌套對象,直到超出內存限制為止。

  1. 回答第二個問題。

這是從嵌套對象中查找鍵的代碼,但僅適用於第二個嵌套對象。

   for (var key in ob) {
    if (!ob.hasOwnProperty(key)) 
    continue;
    var obj = ob[key];
   help += "</br>"
   for (var prop in obj) {
        // skip loop if the property is from prototype
        if(!obj.hasOwnProperty(prop)) continue;

        help += " ---) \""+key+" "+prop+"\"</br>"

    }
}

告訴我你是否有想要的東西。

在這里,我想知道我可以在javascript中定義多少個嵌套或內部對象?

在JS的規范中未定義。

您可以定義嵌套或內部對象的數量。

但是:不要忘記:代碼中的每個對象都需要放置在PC內存中。 而且,如果您有許多對象,瀏覽器將無法正常工作。


如何查找在JS中定義了多少個對象鍵?

使用以下方法:

返回一個包含給定對象自身所有可枚舉和不可枚舉屬性的名稱的數組。

返回直接在給定對象上找到的所有符號屬性的數組。

您將發現在對象中定義了多少個對象鍵的長度。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM